问题描述
我想通过单击按钮来启动和停止计时器。但是停止按钮不起作用。我该如何解决?
我正在开发一个包含Timer和其他功能的项目。我要做的就是使用“按钮”启动和停止计时器。
导入javax.swing.Timer;
JButton startbut=new JButton("Start");
JButton endbut=new JButton("Mark As Done");
private void addActionEvent() {
// Todo Auto-generated method stub
startbut.addActionListener(this);
}
int s=0,h=0;
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==startbut) {
t=new Timer(100,new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
time.setText(String.valueOf(h+"m:"+s+"s"));
s++;
if(s==60) {
h++;
s=0;
}
}
});
t.start();
}
if(e.getSource()==endbut) {
t.stop();
}
}
预先感谢。
解决方法
问题是结束但没有动作侦听器,因此当单击按钮时什么也没发生t.stop();永不接听电话。我们需要注册endbut到相同的动作listenerd,以便在单击它时调用actionPerformed(t.stop)
endbut.addActionListener(this);
之后
// TODO Auto-generated method stub
startbut.addActionListener(this);