Я создаю виртуальную программу типа пианино в Java Swing. Моя область для клавиш фортепиано прямо сейчас - JPanel с горизонтальным BoxLayout, содержащим белые JButtons в виде белых клавиш. Я хочу также добавить черные клавиши и наложить их на белые клавиши.Создание перекрытия JButtons
Есть два разных подхода, которые я пробовал. Один использует OverlayLayout. К сожалению, для менеджера OverlayLayout документации для документации недостаточно, и она недоступна в построителе GUI NetBeans. Я не знаю, как заставить его работать. Во-вторых, я пытался использовать JLayeredPanes. Кажется, я тоже не могу понять, что это произошло, даже после того, как он возился с ним в Netbeans.
Так что я думаю, что мой вопрос довольно прост. Каков наилучший подход, если он есть, добавить JButtons поверх других JButtons? Или, может быть, есть альтернатива использованию JButtons для клавиш фортепиано?
EDIT
Я объединил aioobe и коде dacwe, чтобы получить результат, я хотел. Я в основном использовал z-порядок dacwe с основными размерами aioobe (немного увеличен) и частью мода 7. Я также добавил некоторые переменные, чтобы сделать вещи более ясными. Это то, что у меня есть сейчас.
import javax.swing.*;
import java.awt.Color;
public class Test2 {
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
JLayeredPane panel = new JLayeredPane();
frame.add(panel);
int maxKeys = 8;
int width = 60;
int height = 240;
for (int i = 0; i < maxKeys; i++) {
JButton b = new JButton();
b.setBackground(Color.WHITE);
b.setLocation(i * width, 0);
b.setSize(width, height);
panel.add(b, 0, -1);
}
int width2 = 48;
int height2 = 140;
for (int i = 0; i < maxKeys; i++) {
int j = i % 7;
if (j == 2 || j == 6)
continue;
JButton b = new JButton();
b.setBackground(Color.BLACK);
b.setLocation(i*(width) + (width2*3/4), 0);
b.setSize(width2, height2);
panel.add(b, 1, -1);
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,280);
frame.setVisible(true);
}
}
Спасибо, ребята! Теперь мне нужно как-то прикрепить слушателя и текст к этим кнопкам.
Компоненты z заказ испорчены !! – dacwe 2010-11-25 19:58:46
вы думаете? Я думаю, он выглядит хорошо ... :) – aioobe 2010-11-25 19:59:15
Ehhh, скомпилирован и запущен и перемещен над ним ... он отобразит кнопки в неправильном порядке, когда они будут повторно отображены. – dacwe 2010-11-25 20:01:48