2017-01-26 4 views
-3

So habe ich 3 Tasten - rot, gelb und grün. Der Benutzer sollte sie in der richtigen Reihenfolge anklicken - von rot bis grün. Wenn das passiert, wird es "OK" sagen und wenn nicht, wird es "Falsch" oder was auch immer sagen. Ich stecke fest, weil ich nicht weiß, wie ich die Klickreihenfolge richtig bekomme.JavaFX Tasten klicken Reihenfolge

Dies ist, was ich für jetzt habe, aber es funktioniert nicht richtig.

@Override 
public void start(Stage primaryStage) { 

    VBox root = new VBox(); 

    Button b1 = new Button("Red"); 
    Button b2 = new Button("Yellow"); 
    Button b3 = new Button("Green"); 

    root.getChildren().add(b1); 
    root.getChildren().add(b2); 
    root.getChildren().add(b3); 

    Scene scene = new Scene(root); 

    primaryStage.setTitle("Traffic"); 
    primaryStage.setScene(scene); 
    primaryStage.sizeToScene(); 
    primaryStage.show(); 

    b1.setOnAction((ActionEvent t) -> { 
     b2.setOnAction((ActionEvent t1) -> { 
      b3.setOnAction((ActionEvent t2) -> { 
       System.out.println("OK"); 
      }); 
     }); 
    }); 

} 
+0

Bitte geben Sie den Code, den Sie versucht haben, so können wir helfen. – Swagin9

Antwort

1

Denken Sie verfolgen, welche Taste ist neben:

private Button nextButton ; 

@Override 
public void start(Stage primaryStage) { 

    VBox root = new VBox(); 

    Button b1 = new Button("Red"); 
    Button b2 = new Button("Yellow"); 
    Button b3 = new Button("Green"); 

    nextButton = b1 ; 

    root.getChildren().add(b1); 
    root.getChildren().add(b2); 
    root.getChildren().add(b3); 

    Scene scene = new Scene(root); 

    primaryStage.setTitle("Traffic"); 
    primaryStage.setScene(scene); 
    primaryStage.sizeToScene(); 
    primaryStage.show(); 

    b1.setOnAction((ActionEvent t) -> { 
     if (nextButton==b1) { 
      nextButton=b2 ; 
     } else { 
      System.out.println("Wrong"); 
     } 
    }); 

    b2.setOnAction((ActionEvent t1) -> { 
     // etc 
    }); 

    b3.setOnAction((ActionEvent t2) -> { 
     // etc 
    }); 

} 
+0

Oh, woran habe ich gedacht? Na sicher! Vielen Dank. – Johnny

1

Make 3 Bool Variablen, eine für jede Taste.
Zum Beispiel: redButtonPressed, yellowButtonPressed, greenButtonPressed.
Alle initialisieren auf false.

Wenn dann die rote Taste gedrückt wird, setzen Sie redButtonPressed auf true. Wenn gelbe Taste gedrückt wird:

if (redButtonPressed){ 
yellowButtonPressed = true; 
} else { 
print "Wrong!"; 
} 

und für grüne Taste, wenn sie gedrückt wird:

if(redButtonPressed && yellowButtonPressed){ 
print "OK"; 
} else { 
print "Wrong!"; 
} 

nach dem Druck "Wrong" Sie alle bools auf false gesetzt sollte, denke ich.

+0

Ich muss es drucken. – Johnny

+0

Ich habe Antwort bearbeitet, prüfen Sie, ob es Ihnen jetzt hilft. – anodyna

Verwandte Themen