用户在 Text 组件中输入内容。当他停止打字 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);
}
});
Run Code Online (Sandbox Code Playgroud)
但是这段代码工作不正常
我自己问,我自己回答 :) timer是私人成员
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);
}
});
Run Code Online (Sandbox Code Playgroud)
作品!
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |