2016-11-27 3 views
-1

Ich habe eine Matrix of Button in JavaFX mit einer for-Schleife und Arrays erstellt. Jetzt möchte ich den Buttons einen Wert zuweisen.Index dem Array von Schaltflächen zuweisen?

Hier ist mein Code:

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-Fehler in diesem Teil: Matrix [0] [0] = 1;

Vielen Dank für Ihre Hilfe!

+2

Natürlich können Sie nicht zuordnen '' int' Button' eingeben. Deshalb 'Matrix [x] [y] = new Button(); 'funktioniert aber' Matrix [0] [0] = 1; 'nicht. Was willst du damit erreichen? – fabian

+0

Vielen Dank für Ihre Antwort. Ich muss ein Spiel entwickeln, das eine Matrix von Knöpfen enthält. Im ersten Schritt wird eine Reihe von Schaltflächen unsichtbar und im zweiten Schritt wird die Matrix mit allen Schaltflächen neu aufgebaut und der Benutzer muss die exakte Route in der Matrix anklicken. – Mike

+1

@Mike Ich denke die Frage im vorherigen Kommentar war: Was versuchst du mit dem Code 'Matrix [0] [0] = 1' zu erreichen? Dieser Code macht keinen Sinn (Sie können '1' keinem' Button' zuweisen). Was erwartest du eigentlich? –

Antwort

0

Sie Listen verwenden können, denke ich, mehr angepasst:

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

ich es nicht versucht:

for(List list: btns){ 

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

     //Edit for each button ! 

    } 

} 
+0

Vielen Dank für Ihre Antwort. Ich habe noch nie zuvor mit ArrayList gearbeitet. Wie kann ich die ArrayList in den for-Schleifen realisieren? – Mike

Verwandte Themen