我有兩個切換按鈕。JavaFX中的ToggleButtons
- 我點擊了btn1 // btn1 is on; btn2關閉
- 我點擊btn2 // btn2打開; btn1自動關閉...爲什麼?
有人可以解釋這種行爲並提供解決方案。
我希望所有的切換按鈕都是獨立的。
我有兩個切換按鈕。JavaFX中的ToggleButtons
有人可以解釋這種行爲並提供解決方案。
我希望所有的切換按鈕都是獨立的。
正如我提到的,如果你不把ToggleButton
s轉換爲ToggleGroup
你可以聽分開切換的selectedProperty
:
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());
});
}
但是,我不能讓偵聽器通用,並使用其中的按鈕userdata。我必須爲每個按鈕執行此操作。我有多達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
你能轉發一些關於如何獨立聽按鈕切換動作的鏈接嗎? –