gpt4 book ai didi

JavaFX 和 FXML : assign ChangeListener to observable property

转载 作者:行者123 更新时间:2023-11-30 04:08:15 25 4
gpt4 key购买 nike

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

Any class that defines a setOnEvent() method can be assigned an event handler in markup, as can any observable property (via an "onPropertyChange" attribute).

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

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

在 Controller 中:

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

}

但我收到以下错误:

Caused by: javafx.fxml.LoadException: Controller method "handleFooSelectedChanged" not found.

我必须更改方法签名吗?这是一个错误吗?或者根本不支持这个?

最佳答案

您的 FXML 属性错误!图案是on<PropertyName>Change (不带“d”),不是 on<PropertyName>Changed !

所以这应该有效:onSelectedChange="#handleFooSelectedChanged"

注意:您的 Controller 方法也可以如下所示:

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

关于JavaFX 和 FXML : assign ChangeListener to observable property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com