JButtons w JPanels z GridLayout JFrame
Java / Eclipse IDE tutaj.
Mam jedną ramkę JFrame ustawioną na GridLayout o rozmiarze NxN. N jest nadawany przez użytkownika jako wiersz poleceń na początku programu. JButtons we wzorze NxN są dodawane do okna w JPanels, ustawionego w lokalizacji przez GridLayout (chyba).
Czy każdy JButton potrzebuje własnego JPanela do korzystania z GridLayout? Mam wrażenie, że można ustawić tylko jeden JPanel dla wszystkich przycisków i ustawić JPanel na GridLayout dla JButtons. Chcę dodać kolejny JPanel po lewej stronie tablicy przycisków, aby wyświetlić kliknięcia przycisków (JLabel) i przycisk resetowania w tym samym lewym JPanel.
Oto (trochę) mój kod, gdzie N jest podany przez użytkownika, system to moja klasa procesów w tle, a ButtonEvent to klasa 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);
I to właśnie mam (N = 4):
Oto (w przybliżeniu) to, czego szukam (N = 4):
Wszystko czego potrzebuję / chcę to dwa (lub więcej) JPanels, które są skonfigurowane mniej więcej tak jak powyżej, a wszyscy menedżerowie layoutów, których próbowałem, nie grają dobrze z układem GridLayout JFrame.
Zaprasza się wszelkie zalecenia dotyczące lepszego rozwiązania.
Dzięki!