我想要做的是执行循环一段特定的时间,例如10秒,在此期间我想计算在applet窗口中点击鼠标的次数。
类似这样的事情
for(10 seconds)
{
a=getClickCount()
}
texfield.setText(+a);
我面临的问题是,当我停止点击然后它开始逐秒增加时,计数值开始增加,直到现在我一直在使用 纳米时间法。
答案 0 :(得分:0)
如果我是你,我会实施MouseListener。
设置一个标志以象征开始计数并存储当前时间戳,然后定期检查当前时间并将当前时间的秒数与您保存的时间戳进行比较。在规定时间内每次成功点击都可以增加一个整数值。然后,您只需从MouseListener对象调用getClickCount()。
一旦当前时间晚于存储时间10秒,请将标志设置为false。
答案 1 :(得分:0)
static final int SLEEP_MILLIS = 1000;//1 sec
Thread counter = new Thread("count click thread") {
public void run() {
int nbMillis = 10000; //10sec
do {
a = getClickCount();
refreshView();
Thread.sleep(SLEEP_MILLIS);
nbMillis -= SLEEP_MILLIS;
} while(nbSec>0);
}
};
counter.start();
refreshView()包含编辑文本的代码。 SLEEP_MILLIS包含刷新时间间隔。
答案 2 :(得分:0)
我认为实现此目的的最佳方法是使用Timer和MouseListener(正如Chris Cooney所提到的那样)。
当您想要开始计数10秒时 - 设置计时器并将听众注册到它的事件
打开表示您应该计算点击次数的boolean
只要boolean
标志设置为true
,您的MouseListener就会开始计数。
一旦Timer的事件激活了你的监听器 - 你可以关闭boolean
标志并获得实际的点击次数。