2

FXMLを使用してリスナーを追加しています。

<RadioButton onAction="#onSelectionChanged" />

次に、このリスナーをプログラムで一時的に無効にする必要があります。

これで、ブール変数「listenerDisabled」を設定してリスナーでこの変数を確認できましたが、リスナーを変更せずに無効にする方法が必要なので、削除したいと思います。

ここでの問題は次のとおりです。コードでリスナーを参照して、次を使用できるようにするにはどうすればよいですか?

RadioButton.selectedProperty().removeListener(<what to place here?>)

ヒントをありがとう!

4

1 に答える 1

3

fx:id 仕様を fxml に追加します。

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

fxml の対応するコントローラーで、@FXML表記を使用FXMLLoaderして、ラジオ ボタンへの参照をコントローラーに挿入します。

@FXML RadioButton myRadio;

リスナーへの参照を取得するには、次を呼び出しgetOnActionます。

EventHandler<ActionEvent> myRadioActionEvent = myRadio.getOnAction();

リスナーを削除するには、次を使用しますsetOnAction

myRadio.setOnAction(null);

リスナーを再度追加するには、再度使用setOnActionします。

myRadio.setOnAction(myRadioActionEvent);

上記のいずれも試していませんが、なぜうまくいかないのかわかりません。

于 2013-02-20T20:49:36.973 に答える