events - 单选按钮更改事件 JavaFx

标签 events javafx radio-button onchange radio-group

我有很多 HBox,里面有一些不同的组件(RadioButton、Labels、Buttons ...)。 RadioButtons 在 ToggleGroup 中,因此只能选择 1 个 Radio Button。

我想向单选按钮添加一个 OnChange - 事件。如果 RadioButton 未被选中,则应该有一个事件触发器。如何将事件添加到单选按钮?

目前我有这样的代码,但它没有我想要的功能。

radio.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent arg0) {
            if(!radio.isSelected()){
                ivTriangleImg.setRotate(iRotateCoord2);
                btnTriangle.setGraphic(ivTriangleImg);
            }

            if(group!=null){
                group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {

                    @Override
                    public void changed(
                            ObservableValue<? extends Toggle> arg0,
                            Toggle arg1, Toggle arg2) {

                    }
                });
            }
        }
    });

我使用 JavaFX 2.0 和 Java 1.7,所以我不能使用 Lambda 函数或 JavaFx8/Java 1.8 的特殊组件函数

最佳答案

JavaFX 控件的状态由可观察的属性表示。您可以使用 control.propertyNameProperty()add ChangeListeners 访问这些属性对他们:

radioButton.selectedProperty().addListener(new ChangeListener<Boolean>() {
    @Override
    public void changed(ObservableValue<? extends Boolean> obs, Boolean wasPreviouslySelected, Boolean isNowSelected) {
        if (isNowSelected) { 
            // ...
        } else {
            // ...
        }
    }
});

关于events - 单选按钮更改事件 JavaFx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523393/

相关文章:

javascript - 如何在Ibooks 固定排版书籍中只阻止翻页事件?

Java FX 应用程序安装在同一目录中

JavaFX : Domain objects to TreeView

JavaFX:与文本具有相同宽度和大小的按钮

android - 单选按钮图像

javascript - 无序发生的属性更改的 Angular 事件

.net - 在运行时以通用方式将事件处理程序分配给对象实例

MySQL 事件在一段时间后停止工作

甲骨文顶点 : step by step approach to creating radio buttons in interactive report

javascript - Chrome 和 WebGL <canvas> 的单选按钮背景颜色