多个电话,一个计时器

时间:2010-12-03 13:59:06

标签: java methods timer

我一直在努力解决这个java问题几个小时,我首先想到这很容易.. -.-

问题是我有一个文本域..每次用户在字段中写一个字符时,都会调用一个方法。问题是我想实现一个计时器。时间设置为例如5秒。每次用户写入时,计时器都会重置。这意味着..只有在用户没有写任何东西5秒钟时才会调用该方法。

我已经尝试过使用线程,计时器,时间任务等等。因为我谷歌你不能真正修改一个时间任务,你必须每次都开始一个新的。

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

是的,每次都必须中止并创建一个新的Timer / TimerTask,一旦它运行就无法暂停或重置它。根据您的时间要求有多难,您可以通过运行每秒触发一次的计时器来解决这个问题,并查看输入最后一个字符的时间,以确定您是否需要实际执行某些操作。

这将显着减少开销,因为你不会为每个按键启动一个新线程并结束前一个线程(这就是Timer所做的)。

此外,如果您至少拥有Java 5,请查看此问题以获得更好的替代方案:

Resettable Java Timer

答案 1 :(得分:0)

使用DocumentListener侦听从JTextField添加/删除的文本。

然后你可以使用Swing Timer。它有一个restart()方法。