我正在创建一个速度阅读器,所以我使用swingx.Timer对象来显示给定时间的单词。我将时间设置为1秒进行测试。我之前有代码工作,但在关闭eclipse之后再回到它,代码不再起作用了。计时器不会调用actionlistener,因此不会执行它应该执行的操作。这是我的代码。我读了其他问题,谈论计时器是守护程序线程并以main结尾。但是我不认为我的代码就是这种情况,但我可能错了。有人可以帮我指出我的错误吗?
factor
答案 0 :(得分:4)
从timer.stop()
Actions
方法结束时删除actionPerformed
...
public class Actions implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String source = e.getActionCommand();//read the button asking for the request
if (source.equals("Reset")) {
textPad.setText("");
if (timer.isRunning()) {
timer.stop();
}
} else if (source.equals("Start")) {
//first read the speed selected and set the speed
setSpeed(speedText.getText());
startReader();
} else if (source.equals("Stop")) {
i = 0;
}
// This is stopping the timer AFTER it was already started
//timer.stop();
}
}