需要停止我的Java Swing GUI计时器的帮助吗?

问题描述

我想通过单击按钮来启动和停止计时器。但是停止按钮不起作用。我该如何解决

我正在开发一个包含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);