javafx button array frage?

1 Antwort

Mit einem normalem for Loop über den Array gehen und jedes Mal testen ob der Button der jetzigen Position im Array entspricht, dann ausgeben.

Du kannst auch in den Text die Zahl einbringen oder die Button Klasse erweitern und eine neue Variable für die Position im Array hinzufügen, beides würde die Performance enorm verbessern.

Wenn du trotzdem bei der Methode bleiben willst, kannst du auch einfach ein Liste verwenden, da gibt es die indexOf Methode. (Eine Map kann man auch verwenden, und den Buttons darüber eine Nummer zuweisen, wäre auch performanter)

gut4fr5g4 
Fragesteller
 15.08.2016, 16:52

Meinst du so? (weil das funzt bei mir irgendwie nicht :C): 

for(int i = 0; i<100; i++){
    kästchen[i].setOnAction(new EventHandler(){
        public void handle(ActionEvent event1){
            instanz.Methode(i); 
        }
    });
}

Aber habe keinen zugriff auf "i"... :C 

0
androhecker  15.08.2016, 17:31
@gut4fr5g4

Ja so würde es auch gehen, du musst eben die int in dem EventHandler speichern, das geht mit einer anonymen Klasse so nicht, du musst sie extra definieren (am besten in der selben Datei außerhalb der Klassenklammern).

0
gut4fr5g4 
Fragesteller
 15.08.2016, 19:53
@androhecker

wie meinst du das? :/ Ich verstehe nicht ganz, was du meinst (Danke für die schnelle Antwort! Morgen mach ich dich hilfr. antwort)

0
androhecker  15.08.2016, 20:50

Nun, du erstellst eine neue Klasse, die einen EventHandler vom Typ ActionEvent erweitert, dieser gibst du einen Konstruktor, welcher eine int annimmt und als Objektvariable speichert. Wird die onAction Methode ausgeführt, hat man dann Zugriff auf die Methode. In Loop kann man dann einfach (je nach dem wie die Klasse heißt) new CustomHandler(i) machen.

0
gut4fr5g4 
Fragesteller
 15.08.2016, 20:59
@androhecker

das verwirrt mich irgendwie gerade xD kannst du vielleicht eben ein codebeispiel schicken? ich bin gerade irgendwie verwirrt xD

0