2017-06-20 1 views
-1

引数/パラメータとしてトグルボタンのステータスを渡す方法はありますか?私はこのシナリオのように動作するようにしたい:JavaFX ToggleButtonは、「ステータス」としてクリックされた場合に渡す方法はありますか?

1)ボタンを押してください。 2)[GO]を押します。 3)どのボタンが押されたかに応じて、GOを押すと異なる結果が出るように通過します!

ありがとうございます!

+2

あなたが求めていることは本当に明確ではありません。 "GO"ボタンのイベントハンドラのトグルボタンの 'selected'状態を確認できませんか?または、トグルボタンがすべて同じトグルグループにある場合は、 'toggleGroup.getSelectedToggle()'の値をチェックします。 –

答えて

1

ここに参考になるコードがあります。希望でない場合は、教えてください。

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); 
    } 
} 
+0

ありがとう、これは私が探していた答えです。 "トグルselectedTogger = group.getSelectedToggle();" しかし、私がイベントハンドラにbutton.getSelectedToggleを置くときはいつも、私が「final」としてそれをしなければ、私はそれを使うことができないと言います。特定の理由はありますか? – stevek

+0

@stevek質問を編集して、あなたが執着していた部分を明確にする必要があります。そうでなければ、質問と回答は他のユーザーにとっては非常に限定されています。 –

+0

@stevek ようこそ。 私はあなたを喜んで支援します。 私たちはJava 7で "final"を使用する必要がありますが、Java 8では必要ありません。私のコードはJava 8の下にありますので、 "final"を入れませんでした。 ここをクリックして答えを知りたい。 [Javaの内部クラスには「最終的な」外部インスタンス変数が必要な理由(https://stackoverflow.com/questions/3910324/why-java-inner-classes-require-final-外部インスタンス変数) – yab

関連する問題