我想在我的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中你无法做到。 所以?解决方案是什么?
(用代码描述可能非常好,但如果不可能,任何提示将不胜感激)
答案 0 :(得分:77)
向TextField的textProperty:
添加一个监听器TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
System.out.println("textfield changed from " + oldValue + " to " + newValue);
});