有沒有辦法讓我將切換按鈕的狀態作爲參數/參數傳遞?我希望它能像這種情況下工作: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()'的值? –