java - 文本输入延迟

标签 java swt

用户正在文本组件中输入内容。当他停止打字 1 秒时,我想获取文本并处理它。 我试着这样做

final Timer timer = new Timer();
    Text text = new Text(shell, SWT.BORDER);
    text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            timer.purge();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //handler
                    System.out
                            .println("MainClass.main(...).new SelectionAdapter() {...}.widgetSelected(...).new TimerTask() {...}.run()");
                }
            }, 500);
        }
    });

但是这段代码运行不正常

最佳答案

我自己问我自己回答:) timer 是私有(private)成员(member)

Text text = new Text(shell, SWT.BORDER);
    text.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            if(timer != null){
                timer.cancel();
            }
            timer = new Timer();                
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //handler
                    System.out
                        .println("MainClass.main(...).new SelectionAdapter() {...}.widgetSelected(...).new TimerTask() {...}.run()");
                    timer.cancel();
                }
            }, 1000);
        }
    });

有效!

关于java - 文本输入延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386085/

相关文章:

java - FixedThreadPool 不够并行

java - 尝试创建基本的 JFace 应用程序,不确定问题是什么

JAVA SWT 与简单的 Eclipse

java - 如何从 Java/SWT 表中删除新数据将替换旧数据的所有行?

java - 从 XML 文件中获取子字符串

java - 使用 JavaDoc 记录 Java 枚举的最佳方法是什么?

java - 如何在 Swt 组合框中设置默认值?

java - 旋转外壳 SWT

java - ViewPager 无法正常显示

java - 如何将预训练的 tensorflow 模型加载并预测到Java代码中?