JavaFX中的ToggleButtons

时间:2017-02-24 07:08:21

标签: java javafx togglebutton

我有两个切换按钮。

  1. 我点击了btn1 // btn1已开启; btn2已关闭
  2. 我点击了btn2 // btn2打开; btn1自动关闭......为什么??
  3. 有人可以解释一下这种行为并提供解决方案。

    我希望所有切换按钮都是独立的。

1 个答案:

答案 0 :(得分:1)

正如我所提到的,如果你没有将ToggleButton放入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());
    });
}