Witam
Mam następujący problem, muszę napisać program który po uruchomieniu wyświetli mi pierwsze okno z polem tekstowym oraz przyciskiem do pola tekstowego wpisuję liczbę i naciskam przycisk. Po naciśnięciu program utworzy nowe okno w którym wygeneruje coś jakby macierz JTextField'ów o wymiarach NxN. Nie wiem jak się do tego zabrać, napisałem takie dwie klasy ale nie wiem czy moje rozumowanie jest dobre. Proszę o pomoc albo jakieś podpowiedzi.
package gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class GUI extends JFrame {
JButton przycisk;
JTextField poleTekstowe;
double[][] macierz;
public GUI() {
initComponoments();
}
private void initComponoments() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setTitle("Tytul");
przycisk = new JButton();
przycisk.setBounds(5, 5, 145, 45);
przycisk.setText("Tekst");
poleTekstowe = new JTextField();
poleTekstowe.setBounds(5, 50, 145, 45);
przycisk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setTitle("Tytul2");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
int liczba = Integer.valueOf(poleTekstowe.getText());
new GUI2(liczba).setVisible(true);
}
});
}
});
add(przycisk);
add(poleTekstowe);
}
public static void main(String[] args) {
// TODO code application logic here
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
}
});
}
}
package gui;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class GUI2 extends JFrame {
JTextField[][] pola;
double[][] macierz;
public GUI2(int liczba) {
initComponoments(liczba);
}
private void initComponoments(int liczba) {
setTitle("Drugi");
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pola = new JTextField[liczba][liczba];
int x = 5, y = 5, szerokosc = 120, wysokosc = 40;
for (int i = 0; i < pola.length; i++) {
for (int j = 0; j < pola.length; j++) {
pola[i][j].setBounds(x, y, szerokosc, wysokosc);
x += 125;
y += 45;
add(pola[i][j]);
}
}
}
}