繁体   English   中英

JavaFX&FXML:将ChangeListener分配给可观察的属性

[英]JavaFX & FXML: assign ChangeListener to observable property

根据JavaFX教程 ,应该可以将事件处理程序注册到FXML中的可观察属性:

任何定义setOnEvent()方法的类都可以在标记中分配一个事件处理程序,任何可观察的属性也可以(通过“ onPropertyChange”属性)。

现在,我正在尝试为ToggleButton的selected属性注册一个事件处理程序:

<ToggleButton text="%SomePane.fooButton.text" onSelectedChanged="#handleFooSelectedChanged" toggleGroup="$toggleGroup"/>

并在控制器中:

@FXML
public void handleFooSelectedChanged(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {

}

但我收到以下错误:

原因:javafx.fxml.LoadException:找不到控制器方法“ handleFooSelectedChanged”。

我是否需要更改方法签名? 这是错误吗? 还是根本不支持?

您的FXML属性有误! 模式为on<PropertyName>Change (不带'd'),而不为on<PropertyName>Changed

这样就可以了: onSelectedChange="#handleFooSelectedChanged"

注意:您的控制器方法也可以如下所示:

@FXML
public void handleFooSelectedChanged(BooleanProperty observable, boolean oldValue, boolean newValue);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM