JavaFX 文本字段的值更改侦听器

2022-08-31 22:18:50

我想添加一种到我的,每当用户更改的值时,应用程序会在控制台上打印一些东西。listenerJavaFX's TextFieldTextField

我已经搜索了,我发现以下非常相似的问题:值更改监听器到JTextField

上述问题的答案非常清晰和有效,但不幸的是,它只对(不是)有用,因为它说你应该像这样使用DocumentListener:JTextFieldJavaFX's TextField

// 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

将侦听器添加到文本字段的文本属性:

TextField textField = new TextField();
textField.textProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println("textfield changed from " + oldValue + " to " + newValue);
});

答案 2

推荐