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):

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

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

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

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

Любые рекомендации относительно лучшего решения приветствуются.

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос