如何创建和操作大量JTextField?

时间:2014-11-09 05:52:03

标签: java swing

我用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 个答案:

答案 0 :(得分:0)

制作JTextField s。

的二维数组
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]);
    }
}

答案 1 :(得分:0)

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]);
        }
    }
}

}