Java TextField getText()返回上一个字符串值

Plo*_*la 4 java swing textfield

我有Java Textfield的问题,当我覆盖JTextField中的所有文本并立即输入新文本(不传递退格)到JTextField,然后我使用函数getText()我得到前一个字符串而不是当前字符串.请帮忙解决一些问题.提前致谢.

Ada*_*ith 13

我刚刚通过向JTextField添加keyListener并将getText()方法的返回值打印到控制台来测试您描述的问题.

我发现如果你想在keyTyped或keyPressed事件中使用getText()方法,它总是一个字符(我不知道这是因为我通常只是用一个按钮来确认我已完成输入文本并将KeyEvent绑定到Return键以触发按钮,如果用户想通过按Enter键确认

我认为这是由于textField在事件发生后更新其文本值.

我认为这是你所做的,因为你没有提供示例代码,所以如果不是,我会删除这个答案.

解决这个问题的方法是在keyReleased方法中实现你想要做的事情.

public void keyReleased(Event e)
{
  System.out.println(myTextField.getText());
}
Run Code Online (Sandbox Code Playgroud)


cam*_*ckr 7

不要使用KeyListener.触发keyPressed()事件时,该字符尚未添加到Document中.

将ActionListener添加到JButton.这样,当输入文本时,用户点击按钮.

此外,在将来发布SSCCE问题时,我们可以更好地了解您要做的事情.