Java/Eclipse IDE здесь.JButtons внутри JPanels с GridLayout JFrame
У меня есть один JFrame, который установлен в GridLayout размера NxN. N задается пользователем в командной строке в начале программы. JButtons в шаблоне NxN добавляются в окно в JPanels, устанавливаются в местоположении GridLayout (я думаю).
Нужен ли каждому JButton собственный JPanel для использования GridLayout? У меня создается впечатление, что вы можете настроить только один JPanel для всех кнопок и установить JPanel в GridLayout для JButtons. Я хочу добавить еще один JPanel слева от массива кнопок, чтобы отображать нажатия кнопок (JLabel) и кнопку сброса внутри той же левой JPanel.
Здесь (немного) мой код, где N задается пользователем, система мой фоновые процессы класса, и ButtonEvent класс для ActionListener/actionPerformed:
JFrame window = new JFrame("");
GridLayout layout = new GridLayout(N,N);
window.setLayout(layout);
for (int row = 0; row < N; row++){
for (int col = 0; col < N; col++){
JPanel panel = new JPanel();
JButton b = new JButton ("("+row+","+col+")");
window.add(b).setLocation(row, col);
panel.add(b);
b.addActionListener(new ButtonEvent(b, system, row, col));
window.add(panel);
}
}
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
И это то, что у меня есть (N = 4):
Здесь (приблизительно), что я ищу (N = 4):
Все, что мне нужно/нужно - это два (или более) JPanels, которые настроены примерно так же, как и выше, и все планировщики макетов, которые я пробовал, не играют хорошо с макетом GridLayout JFrame.
Предлагаются любые рекомендации относительно лучшего решения.
Спасибо!
+1 См. Также этот [пример] (http://stackoverflow.com/a/7706684/230513). – trashgod
@trashgod: Спасибо за удаление этой большой ошибки, так как теперь по крайней мере она будет работать, даже без каких-либо аргументов :-). Мой чек раньше был бесполезным, LOL. –
Ницца! Мне нравится, как это изменяет размеры (или, фактически, не изменяет размер). Сообщение trashgod ниже объясняет, почему именно это функционирует как таковое. Благодаря! – Avertheus