JavaFX Button mit mehreren Aktionen?

Mitja

Mitglied
Hey,

ich bin noch ein Java Anfänger und bin dabei mein erstes kleines Spiel zu programmieren. Ich mache gerade die Optionen und wollte einen Button machen, der die Farbe des Fensters ändert (zum Beispiel: Weiß(Standard), Hellblau, Gelb). Nun habe ich das Problem, dass ich nicht weiß, wie ich mehrere Aktionen auf einen Button tue. Ich habe schon versucht das mit einem Array oder einer Liste zu regeln, aber es hat bisher nichts geklappt.

Danke im voraus! 🙂
~Mitja
 
Das kann man auch simpel mit einem counter und einem switch machen...

Code:
Wenn "counter" 1 - setze Fenster Weiß
                           - counter++
Wenn "counter" 2 - setze Fenster Hellblau
                           - counter++
Wenn "counter" 3 - setze Fenster Gelb
                           - counter = 1

Ich bin mir nicht sicher, warum man das ganze auf einen Button legen sollte, aber wenn ich dich richtig verstanden habe sollte das mehr als ausreichen.
 
Das kann man auch simpel mit einem counter und einem switch machen...

Code:
Wenn "counter" 1 - setze Fenster Weiß
                           - counter++
Wenn "counter" 2 - setze Fenster Hellblau
                           - counter++
Wenn "counter" 3 - setze Fenster Gelb
                           - counter = 1

Ich bin mir nicht sicher, warum man das ganze auf einen Button legen sollte, aber wenn ich dich richtig verstanden habe sollte das mehr als ausreichen.

Das habe ich bereits versucht. Vielleicht mache ich etwas falsch, aber der Befehl "counter++;" wird anscheinend ignoriert. Ich habe zum Test in case 1 und in case 2 einen String rein getan und mir wurde immer nur der String aus case 1 angezeigt.
Ich hatte auch eine andere Lösung, aber ich würde es gern mit dem Button machen.
 
Zeig doch mal den Code dazu

Java:
optionColor.setOnAction(new EventHandler<ActionEvent>() {
            
            public void handle(ActionEvent event) {
                int counter = 1;
                switch(counter) {
                case 1:
                    pane.setStyle("-fx-background-color: white;");
                    counter++;
                    break;
                case 2:
                    pane.setStyle("-fx-background-color: skyblue;");
                    counter = 1;
                    break;
                }
               
            }
    });
 
Bei jedem Button-Click gibt es eine neue Variable counter, die mit 1 initialisiert wird, dass kann ja so auch nicht klappen 😉

Mach aus counter eine Instanzvariable des EventHandlers
 

Zurück
Oben