JButtons внутри JPanels с JFrame GridLayout

У меня есть один JFrame, для которого задан GridLayout размером NxN. N задается пользователем в виде командной строки при запуске программы. JButtons в шаблоне NxN добавляются к окну в JPanels, установленном в GridLayout (я думаю ).

Нужна ли каждой кнопке JButton собственная панель JPanel для использования GridLayout? У меня сложилось впечатление, что вы можете настроить только одну JPanel для всех кнопок и установить JPanel в GridLayout для JButtons. Я хочу добавить еще одну JPanel слева от массива кнопок для отображения нажатий кнопок (JLabel )и кнопку сброса в той же левой панели JPanel.

Вот (немного )моего кода, где N задается пользователем, system — класс фоновых процессов, а 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):

http://i.imgur.com/nbQoM.png

Вот (приблизительно )то, что я ищу (N=4):

http://i.imgur.com/SiVWO.png

Все, что мне нужно, это две (или более )JPanel, которые настроен примерно так, как указано выше, и все менеджеры компоновки, которые я пробовал, плохо работают с макетом JFrame GridLayout.

7
задан TylerH 20 November 2019 в 17:30
поделиться