gpt4 book ai didi

listener - 以编程方式删除使用 FXML 添加的监听器?

转载 作者:行者123 更新时间:2023-12-04 05:10:54 24 4
gpt4 key购买 nike

我正在使用 FXML 添加一个监听器:

<RadioButton onAction="#onSelectionChanged" />

现在我需要以编程方式暂时禁用这个监听器。

现在我可以设置一些 bool 变量“listenerDisabled”并在监听器中检查这个变量,但我想要一种方法来禁用监听器而不改变它——所以我想删除它。

这里的问题是:如何在我的代码中引用监听器,以便可以使用以下内容?
RadioButton.selectedProperty().removeListener(<what to place here?>)

感谢您的任何提示!

最佳答案

将 fx:id 规范添加到您的 fxml:

<RadioButton fx:id="myRadio" onAction="#onSelectionChanged" />

在 fxml 的相应 Controller 中,使用 @FXML具有 FXMLLoader 的符号将单选按钮的引用注入(inject)到您的 Controller 中:
@FXML RadioButton myRadio;

要获得对监听器的引用,请调用 getOnAction :
EventHandler<ActionEvent> myRadioActionEvent = myRadio.getOnAction();

要删除监听器,请使用 setOnAction :
myRadio.setOnAction(null);

要重新添加监听器,请使用 setOnAction再次:
myRadio.setOnAction(myRadioActionEvent);

我没有尝试上述任何方法,但我不明白为什么它不起作用。

关于listener - 以编程方式删除使用 FXML 添加的监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927233/

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