有没有办法让我将切换按钮的状态作为参数/参数传递?我希望它能像这种情况下工作:JavaFX ToggleButton,如果它被点击为“状态”,有没有办法通过?
1)按下按钮。 2)按GO! 3)根据按下哪个按钮,它会通过,所以当我按GO时会有不同的结果!
谢谢!
有没有办法让我将切换按钮的状态作为参数/参数传递?我希望它能像这种情况下工作:JavaFX ToggleButton,如果它被点击为“状态”,有没有办法通过?
1)按下按钮。 2)按GO! 3)根据按下哪个按钮,它会通过,所以当我按GO时会有不同的结果!
谢谢!
这里有一些代码供参考,如果它不是你想要的,请告诉我。
public class Foo extends Application{
@Override
public void start(Stage primaryStage) throws IOException{
ToggleGroup group = new ToggleGroup();
ToggleButton tb1 = new ToggleButton("ToggleButton 1");
ToggleButton tb2 = new ToggleButton("ToggleButton 2");
ToggleButton tb3 = new ToggleButton("ToggleButton 3");
tb1.setToggleGroup(group);
tb2.setToggleGroup(group);
tb3.setToggleGroup(group);
Button btn = new Button("GO");
btn.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
Toggle selectedTogger = group.getSelectedToggle();
if(selectedTogger == tb1){
//outcome 1 (ToggleButton1 selected)
}else if(selectedTogger == tb2){
//outcome 2 (ToggleButton2 selected)
}else if(selectedTogger == tb3){
//outcome 3 (ToggleButton3 selected)
}else{
//outcome 4 (No ToggleButton selected)
}
}
});
VBox vbox = new VBox();
vbox.getChildren().addAll(tb1, tb2, tb3, btn);
primaryStage.setScene(new Scene(vbox));
primaryStage.show();
}
public static void main(String[] args){
launch(args);
}
}
谢谢,这是我正在寻找的答案。 “Toggle selectedTogger = group.getSelectedToggle();” 但是,无论何时将button.getSelectedToggle放入事件处理程序中,它都表示除非将其作为“最终”处理,否则我无法使用它。有什么具体原因吗? – stevek
@stevek您应该编辑您的问题以清楚说明这是您被卡住的部分。否则,问题和答案对其他用户的使用非常有限。 –
@stevek 不客气。 我很乐意帮助你。 我们必须在Java 7中使用“final”,但在Java 8中不是必需的。我的代码在Java 8下,所以我没有放入“final”。 这里是你想知道的答案链接 [为什么Java内部类需要“最终”外部实例变量](https://stackoverflow.com/questions/3910324/why-java-inner-classes-require-final-外实例变量) – yab
这是不是很清楚你在问什么。你不能只在“GO”按钮的事件处理程序中检查切换按钮的'selected'状态吗?或者如果切换按钮都在同一个切换组中,只需检查'toggleGroup.getSelectedToggle()'的值? –