我创建了一个数独游戏板,并且我创建了9个JPanel,每个JPanel拥有9个JTextField。我的问题是我不知道如何从一个SPECIFIC面板获取JTextField的输入。
这就是我创建每个JTextField和JPanel的方法。我已经用另一种方法初始化了它们。
private JPanel panel1, panel2, panel3, panel4, panel5, panel6, panel7, panel8, panel9;
private JPanel[][] smallgrids = { {panel1, panel2, panel3}, {panel4, panel5, panel6}, {panel7, panel8, panel9} };
private JTextField cell1, cell2, cell3, cell4, cell5, cell6, cell7, cell8, cell9;
private JTextField[][] cells = { {cell1, cell2, cell3}, {cell4, cell5, cell6}, {cell7, cell8, cell9}};
这是我从每个JTextField获取输入所做的:
String input;
for(int x = 0; x < 3; x++){
for(int y = 0; y < 3; y++){
input = cells[x][y].getText();
cells[x][y].setText(input);
}
}
//this was my test to see if it would print the correct value
System.out.println(input[0][0]);
我的问题是循环访问单元格的输入,而没有指定它来自哪个面板。如何指定我从哪个面板访问输入?对不起,如果措辞有点令人困惑。如果需要,我可以发布所有代码。
答案 0 :(得分:0)
建议:
答案 1 :(得分:0)
你的smallgrids是一个2d的JPanel阵列。您的单元格是JTextField的二维数组。从你的代码看起来,你现在只有一个。
使用您当前的设计,您的smallgrids数组中的每个JPanel都需要一个JTextField网格。我可以像这样创建和初始化这些值:
public void init_grids(){
// create the outer grid.
JPanel[][] grid = NEW JPanel[3][3];
// for each cell of the outer grid
for (int x1 = 0; x1 < 3; x1++) {
for (int y1 = 0; y1 < 3; y1++) {
// create the array of textfields for this panel.
JTextField[][] textFields = new JTextField[3][3];
grid[x1][y1] = textFields;
// for each cell of the inner grid
for (int x2 = 0; x2 < 3; x2++) {
for (int y2 = 0; y2 < 3; y2++) {
// create the text field.
textFields[x2][y2] = new JTextField();
}
}
}
}
}
通过以下方式访问它:
// 1st 2 indices are outer grid, 2nd 2 are the inner grid.
grid[x1][y1][x2][y2].getText();