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

需要帮助停止我的Java Swing GUI计时器吗?,java,swing,timer,Java,Swing,Timer,我想通过单击按钮启动和停止计时器。但是停止按钮不起作用。我该如何解决这个问题 我正在做一个包含计时器和其他功能的项目。我只想用按钮启动和停止计时器 导入javax.swing.Timer JButton startbut=new JButton("Start"); JButton endbut=new JButton("Mark As Done"); private void addActionEvent() { // TODO Auto-gene

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

我正在做一个包含计时器和其他功能的项目。我只想用按钮启动和停止计时器

导入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();
    }
    
    
}

提前感谢。

问题是endbut没有操作侦听器,因此当单击按钮时,什么都不会发生。t.stop();永远不要接到电话。我们需要将endbut注册到同一个action listenerd,以便在单击它时调用actionPerformed(t.stop)

之后


我没有看到动作监听器添加到
endbut
?您没有为
endbut
注册
ActionListener
。添加一些注释将大大有助于解释为什么这可以解决OP的问题。仅仅是一个代码转储并没有多大帮助。好吧,问题是endbut没有操作侦听器,所以当点击按钮时,什么都不会发生。t.stop();永远不要接到电话。我们需要将endbut注册到同一个操作侦听器。请使用附加信息回答问题。解释将在评论中消失。
endbut.addActionListener(this);
// TODO Auto-generated method stub
    startbut.addActionListener(this);