2つのトグルボタンがあります。JavaFXのToggleButtons
- 私はbtn1をクリックしました// btn1はオンです。 btn2はオフです
- 私はbtn2をクリックしました// btn2はオンです; btn1は自動的にオフになります...なぜですか?
誰かがこの現象を説明し、解決策を提示できますか?
すべてのトグルボタンを独立させたいです。
2つのトグルボタンがあります。JavaFXのToggleButtons
誰かがこの現象を説明し、解決策を提示できますか?
すべてのトグルボタンを独立させたいです。
私が述べたように、あなたは別にトグルのselectedProperty
を聞くことができるToggleGroup
にToggleButton
Sを入れていない場合:
ToggleButton tb1 = new ToggleButton("ToggleButton1");
ToggleButton tb2 = new ToggleButton("ToggleButton2");
tb1.selectedProperty().addListener(((observable, oldValue, newValue) -> {
System.out.println(tb1.getText() + " changed from " + oldValue + " to " + newValue);
System.out.println("Taking a nap!");
}));
tb2.selectedProperty().addListener(((observable, oldValue, newValue) -> {
System.out.println(tb2.getText() + " changed from " +oldValue + " to " + newValue);
System.out.println("Working hard!");
}));
を更新:あなたもonActionProperty
を使用することができます。
for (int i = 0; i< 20; i++) {
ToggleButton tb = new ToggleButton("ToggleButton"+i);
tb.setUserData("UserData"+i);
tb.setOnAction(e -> {
System.out.println(tb.getText() + " - Selected: " + tb.isSelected()
+ "; UserData: " + tb.getUserData());
});
}
しかし、私はリスナーを一般的にして、そこにボタンのユーザデータを使用することはできません。私は各ボタンのためにそれを行う必要があります。私は最大20のボタンを持っています。 –
リスナーをジェネリックにしたとすると、どのボタンがクリックされたのか、それ以降の操作にuserDataが使用されるのかをどのようにして知ることができますか? –
あなたの答えが更新されました。 – DVarga
この質問に関連しています:http://stackoverflow.com/questions/42413313/togglebuttons-and-listeners-in-javafx答えはこの回答に対する私の最後のコメントです:http://stackoverflow.com/questions/42413313/togglebuttons-and-listeners-in-javafx/42413452#42413452: 'ToggleGroup'のためです。 – DVarga
ボタンのトグル動作を個別に聞く方法に関するいくつかのリンクを転送できますか? –