JavaFX的TextField的值更改侦听器

时间:2015-05-11 06:29:18

标签: java javafx javafx-8 documentlistener

我想在我的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中你无法做到。 所以?解决方案是什么?

(用代码描述可能非常好,但如果不可能,任何提示将不胜感激)

1 个答案:

答案 0 :(得分:77)

向TextField的textProperty:

添加一个监听器
TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println("textfield changed from " + oldValue + " to " + newValue);
});