2016-11-27 4 views
-1

Я создал матрицу Button в JavaFX с циклом for и массивами. Теперь я хотел бы присвоить значение кнопкам.присвоить индекс массиву кнопок?

Вот мой код:

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

Затмение Ошибка в этой части: матрица [0] [0] = 1;

Большое вам спасибо за помощь!

+2

Конечно, вы не можете назначить 'int' типа' Button'. Вот почему 'matrix [x] [y] = new Button();' работает, но 'matrix [0] [0] = 1;' does not. Что вы пытаетесь достичь с этим в любом случае? – 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. Как я могу реализовать ArrayList в циклах for? – Mike