JButtons внутри JPanels с помощью GridLayout JFrame
Java / Eclipse IDE здесь.
У меня есть один JFrame, который установлен в GridLayout размером NxN. N задается пользователем в виде командной строки в начале программы. Кнопки J в шаблоне NxN добавляются в окно в JPanels, устанавливаемое с помощью GridLayout (я думаю).
Каждый JButton нуждается в своем собственном JPanel, чтобы использовать GridLayout? У меня сложилось впечатление, что вы можете установить только одну JPanel для всех кнопок и установить для JPanel значение GridLayout для кнопок J. Я хочу добавить еще одну JPanel слева от массива кнопок для отображения нажатий кнопок (JLabel) и кнопку сброса в том же левом JPanel.
Вот (немного) мой код, где N задается пользователем, system является моим классом фоновых процессов, а ButtonEvent является классом для ActionListener / actionPerformed:
<code>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); </code>
И вот что у меня есть (N = 4):
Вот (приблизительно) то, что я ищу (N = 4):
Все, что мне нужно / нужно, - это два (или более) JPanel, которые настроены примерно так, как описано выше, и все менеджеры компоновки, которые я пробовал, не очень хорошо играют с макетом GridLayout JFrame.
Любые рекомендации относительно лучшего решения приветствуются.
Спасибо!