Как мне создать и управлять большим количеством полей JTextFields?

Я написал решатель судоку на Java и хочу сделать его визуальным. Следующий код создает JTextField, который будет использоваться для ввода одного из чисел, указанных в загадке судоку:

public class Visual extends JFrame {
    private static final long serialVersionUID = 1L;
    int x = 0;
    int y = 0;
    public Visual() {
        setSize(600, 400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        GridBagConstraints gbc = new GridBagConstraints();
        JPanel panel = new JPanel(new GridBagLayout());

        JTextField box00 = new JTextField("0", 3);
        gbc.gridx = 0;
        gbc.gridy = 0;
        panel.add(box00);
    }
}

Тем не менее, мне нужно добавить 81 блок JTextField, который будет иметь позиции сетки и должен быть добавлен на панель. Есть ли быстрый способ сделать это без записи кода 81 раз? Я новичок в Java, любая помощь очень ценится.

2 ответа

Решение
public class Visual {

GridBagConstraints gbc = new GridBagConstraints();
JPanel panel = new JPanel(new GridBagLayout());

JTextField[][] box = new JTextField[9][9];

public Visual() {

    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            box[i][j] = new JTextField("0", 3);
            gbc.gridx = i;
            gbc.gridy = j;
            panel.add(box[i][j]);
        }
    }
}

}

Сделать 2D массив из JTextFields.

JTextField[][] box = new JTextField[9][9];
for (int i=0; i<9; i++) {
    for (int j=0; j<9; j++) {
        box[i][j] = new JTextField(...);
        panel.add(box[i][j]);
    }
}
Другие вопросы по тегам