listener
をJavaFX's TextField
に追加して、ユーザーがTextField
の値を変更すると、アプリケーションが何かをコンソールに出力するようにします。
私は検索しましたが、次の非常に似た質問を見つけました: Value Change Listener to JTextField
上記の質問の答えは非常に明確で効率的ですが、残念ながらJTextField
(JavaFX's TextField
ではなく)にのみ役立ちます。これは、次のようにDocumentListenerを使用する必要があるためです。
// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
warn();
}
public void removeUpdate(DocumentEvent e) {
warn();
}
public void insertUpdate(DocumentEvent e) {
warn();
}
ただし、JavaFXのTextFieldsでは実行できません。そう?解決策は何ですか?
(コードでの記述は非常に良い場合がありますが、それが不可能な場合は、どんなヒントも歓迎します)
TextFieldのtextPropertyにリスナーを追加します。
TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
System.out.println("textfield changed from " + oldValue + " to " + newValue);
});