用户正在文本组件中输入内容。当他停止打字 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/