2016-11-27 63 views
-1

我用for循环和数组在JavaFX中创建了一个按钮矩阵。 现在我想为按钮分配一个值。将索引分配给按钮数组?

这是我的代码:

int SIZE = 10; 
int length = SIZE; 
int width = SIZE; 

GridPane root = new GridPane(); 

matrix = new Button[width][length]; 
matrix[0][0] = 1; 


for(int y = 0; y < length; y++) 
{ 
     for(int x = 0; x < width; x++) 
     { 
      Random rand = new Random(); 


      int rand1 = rand.nextInt(2); 
      matrix[x][y] = new Button(/*"(" + rand1 + ")"*/); 
      matrix[x][y].setText("(" + rand1 + ")"); 
      matrix[x][y].setOnAction(new EventHandler<ActionEvent>() { 

       @Override 
       public void handle(ActionEvent event) { 
        System.out.println("Random Binary Matrix (JavaFX)"); 
       } 
      }); 

      root.add(matrix[x][y], y, x); 
     } 
} 

在该部分的Eclipse错误: 矩阵[0] [0] = 1;

非常感谢您的帮助!

+2

当然你也可以不指定'int'键入'Button'。这就是为什么'矩阵[X] [Y] =新的按钮();'工作,但矩阵[0] [0] = 1;'不。无论如何,你试图达到什么目的? – fabian

+0

谢谢你的回答。我必须开发一个包含按钮矩阵的游戏。在第一步中,一排按钮变得不可见,并且在第二步中矩阵正在用所有按钮重建,并且用户必须点击矩阵中的确切路线。 – Mike

+1

@Mike我认为在以前的评论中的问题是:你想用代码'matrix [0] [0] = 1'实现什么?这段代码没有意义(你不能将'1'分配给'Button')。你期望这个实际做什么? –

回答

0

,可以使用列表,我觉得更适应:

// 1 dimension 
List<Button> btns = new ArrayList<>(10); 
// 2 dimensions     
List<List<Button>> btns = new ArrayList<>(10); 
btns.get(0).get(0).setText("Hi"); 

我没有尝试:

for(List list: btns){ 

    for(Button btn: (List<Button>) list){ 

     //Edit for each button ! 

    } 

} 
+0

谢谢你的回答。我从来没有使用过arrayList。我如何才能在for循环中实现ArrayList? – Mike