JButtons dentro de JPanels con un JFrame de GridLayout

Java / Eclipse IDE aquí.

Tengo un JFrame que se establece en un GridLayout de tamaño NxN. El usuario proporciona una N como línea de comando al inicio del programa. Los JButtons en un patrón NxN se agregan a la ventana en JPanels, establecidos en la ubicación por GridLayout (creo).

¿Cada JButton necesita su propio JPanel para usar GridLayout? Tengo la impresión de que puedes configurar solo un JPanel para todos los botones y configurar el JPanel en un GridLayout para los JButtons. Quiero agregar otro JPanel a la izquierda de la matriz de botones para mostrar los clics de botones (JLabel) y un botón de reinicio dentro de ese mismo JPanel izquierdo.

Aquí está (un poco de) mi código, donde N es dado por el usuario, el sistema es mi clase de procesos de fondo, y ButtonEvent es la clase para 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>

Y esto es lo que tengo (N = 4):

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

Aquí está (aproximadamente) lo que estoy buscando (N = 4):

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

Todo lo que necesito / deseo son dos (o más) JPanels que están configurados aproximadamente como los de arriba, y todos los administradores de diseño que he intentado no juegan bien con el JFrame de diseño GridLayout.

Se invita a cualquier recomendación en cuanto a una mejor solución.

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta