2016-12-02 36 views
0

我制作了3x3魔方检查器。我只是想知道如何能够将我的9个JTextFields存储在数组中?
这样我就可以通过二维数组,并迅速分配值的JTextField的循环,因为我在我的存储值的方式是远远高效...
您可以在NetBeans中创建一个JTextFields数组吗?

int[][] grid = new int[3][3]; 
    grid[0][0] = new Integer(one.getText()); 
    grid[0][1] = new Integer(two.getText()); 
    grid[0][2] = new Integer(three.getText()); 
    grid[1][0] = new Integer(four.getText()); 
    grid[1][1] = new Integer(five.getText()); 
    grid[1][2] = new Integer(six.getText()); 
    grid[2][0] = new Integer(seven.getText()); 
    grid[2][1] = new Integer(eight.getText()); 
    grid[2][2] = new Integer(nine.getText()); 
+2

like'JTextFields [] [] = new JTextFields [3] [3];'? –

回答

0

你想存储JTextField的在一个数组或数组中的Integer值?这会将Integer存储为示例代码中的代码,但您可以轻松地将第7行上的分配更改为新的JTextField。

private static final int ROWS_NUM = 3; 
private static final int COLS_NUM = 3; 
int[][] grid = new grid[ROWS_NUM][COLS_NUM]; 
int counter = 0; 
for(int i=0; i<ROWS_NUM; i++) { 
    for(int j=0; j<COLS_NUM; j++) { 
     grid[i][j] = new Integer(++counter); 
    } 
} 
+0

我想要将JTextFields存储在一个数组中,并通过循环运行网格后,我希望它将用户输入的值存储在JTextFields中 – JAVANOOB

1

在最简单的方式,如果你想这样做在一个循环,你应该在一个列表,数组或Java语言支持的任何列表对象创建的JTextField对象。因为你想按照一定的顺序获得值并在循环中完成。

JTextField[] fields = new JTextField[9]; 
//set the index of text field 
int fieldIndex = 0; 
int[][] grid = new int[3][3]; 
for(int i = 0; i<3; i++){ 
    for(int j = 0; j<3; j++){ 
     //JTextField value will be string, if you want to get integer from string you should do this. Otherwise you can generate string matrix to keep values as a string. 
     grid[i][j] = Integer.getInteger(fields[fieldIndex].getText()); 
     fieldIndex++; 
    } 
} 
相关问题