文本更新后,JTextField对按键事件做出响应。

问题描述 投票:0回答:2

现在,当我添加一个 KeyListenerJTextField我得到一个事件,然后文本更新。但我需要的是 KeyListener 响应 之后 的文本进行了更新。我应该如何做呢?现在,我正在设置一个10毫秒的延迟到 KeyListener 在另一个线程中,这足以让文本更新,而用户不会注意到。

java swing jtextfield keylistener
2个回答
4
投票

不要使用KeyListener。Swing有比AWT更新和更好的API。

相反,你应该添加一个 DocumentListenerDocumentJTextfield

A DocumentEvent 时,就会产生 Document 是更新的。

阅读Swing教程中关于 如何编写一个DocumentListener 更多的信息和例子。


0
投票

所以......嗯,我知道这是一种'晚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
            }
        });

注意,我不知道为什么它的工作原理,但我会认为,它有什么做的打字速度或东西,我也不是一个专家,但我想帮助(这个问题驱使我疯了几天),如果我说任何愚蠢的东西,请让我知道!

© www.soinside.com 2019 - 2024. All rights reserved.