所以我有3个按钮 - 红色,黄色和绿色。用户应按正确的顺序点击它们 - 从红色到绿色。如果发生这种情况,它会说" OK"如果没有,它会说"错误"管他呢。我被卡住了,因为我不知道如何正确获取点击订单。
这就是我现在所拥有的,但它无法正常运作。
@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 :(得分:1)
制作3个bool变量,每个按钮一个。
例如:redButtonPressed,yellowButtonPressed,greenButtonPressed。
全部初始化为false。
然后,按下红色按钮时,将redButtonPressed设置为true。
按下黄色按钮时:
if (redButtonPressed){
yellowButtonPressed = true;
} else {
print "Wrong!";
}
和绿色按钮,按下时:
if(redButtonPressed && yellowButtonPressed){
print "OK";
} else {
print "Wrong!";
}
打印“错误”后,你应该将所有的bool设置为false。
答案 1 :(得分:1)
只需跟踪下一个按钮:
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
});
}