我的文本字段的 .getText 函数不同步

the .getText function of my textfield isn't in sync

我正在编写一个 fxml 项目,并且有一个带有此处理程序的文本字段:

@FXML
    private void action (KeyEvent event) throws ParseException, IOException {
        System.out.println(textField.getText());
    }

但问题是,例如,如果我在文本字段中写入 "problem",我得到的输出是 "proble",就像 actionhandler 总是落后一步!我该如何解决这个问题?

很可能您的 textField 在释放按键后正在更新,但在按下按键时会发生此事件。如果我是你,我会尝试:

  • 测试 EventType 并仅在发布后打印,所以类似: if (event.getEventType() == KeyEvent.KEY_RELEASED) ...(参见 doc) , 或
  • 只需从 event.getText() 获取最后按下的键并附加到 textField.getText() 的字符串(虽然有点 hacky)

在我看来,这两个都不理想,但这是我要开始的地方。祝你好运!