除非被新的计划任务覆盖,否则如何在 x 秒后执行任务?
场景是我想在用户输入完我的 JTextField 后 1 秒执行一个任务。为此,我需要安排任务,并在每次“文档”更改时重新安排。
我尝试使用 a ScheduledExecutorService
,但调度只是将任务添加到列表中,而不是取消上一个任务。
这是我希望它去的地方:
class TextChangeListener implements DocumentListener {
private final ??? updater = new ???();
@Override
public void changedUpdate(DocumentEvent arg0) {}
@Override
public void insertUpdate(DocumentEvent arg0) {
update();
}
@Override
public void removeUpdate(DocumentEvent arg0) {
update();
}
private void update() {
// Wait for the user to finish typing first
updater.schedule(new Runnable() {
@Override
public void run() {
doSomeStuff();
}
}, 1, TimeUnit.SECONDS);
}
}