现在,当我添加一个 KeyListener
到 JTextField
我得到一个事件,然后文本更新。但我需要的是 KeyListener
响应 之后 的文本进行了更新。我应该如何做呢?现在,我正在设置一个10毫秒的延迟到 KeyListener
在另一个线程中,这足以让文本更新,而用户不会注意到。
不要使用KeyListener。Swing有比AWT更新和更好的API。
相反,你应该添加一个 DocumentListener
至 Document
的 JTextfield
A DocumentEvent
时,就会产生 Document
是更新的。
阅读Swing教程中关于 如何编写一个DocumentListener 更多的信息和例子。
所以......嗯,我知道这是一种'晚X)
我通过使用keyReleased方法来解决这个问题,我注意到文本会在key事件之前被更新,它应该给你这样的东西
JTextField jtf = new JTextField();
jtf.addKeyaddKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// not here
}
@Override
public void keyReleased(KeyEvent e) {
// not here
}
@Override
public void keyPressed(KeyEvent e) {
//do the stuff here
}
});
注意,我不知道为什么它的工作原理,但我会认为,它有什么做的打字速度或东西,我也不是一个专家,但我想帮助(这个问题驱使我疯了几天),如果我说任何愚蠢的东西,请让我知道!