java - 显示倒计时

标签 java swing timer jlabel

我需要在我的应用程序中实现一个计时器,它将从 10 秒到 0 秒进行倒计时。 并在 JLabel 中显示倒计时。

这是我的实现;

...
Timer t = new Timer(1000, new List());
        t.start();

}

class List implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        int sec = 0;
        label.setText(""+sec);
        // Do a if- condition check to see if the clock has reached to, and then stop

    }

}

我原以为 JLabel 会从 0 - 10 开始计数,然后停止。但事实并非如此。 JLabel 设置值 0 并且它不会递增。

更新 1

    t = new Timer(1000, new Listner());
    t.start();


}

class Listner implements ActionListener{
    private int counter = 0;
    @Override
    public void actionPerformed(ActionEvent e) {
        lable.setText(""+ (counter++));

        if (counter == 10)
              t.removeActionListener(this);

    }

}

最佳答案

你没有在任何地方存储或递增 secs 所以我不知道它应该如何更新,试试

Timer timer;

void start() {
  timer = new Timer(1000,new List());
}

class List implements ActionListener {
    private counter = 0;
    @Override
    public void actionPerformed(ActionEvent e) {
        label.setText(""+counter++);

        if (counter == 10)
          timer.removeActionListener(this);
    }
}

请注意,您需要在某处存储对计时器的引用,以便能够在倒计时结束后从中删除监听器。

关于java - 显示倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805569/

相关文章:

java - 对于 Maven 2,如果可以传递访问依赖项,是否应该重新声明它们?

java - 从 JTable 中选择一个项目并将其放在另一个项目上

.net - OpenNETCF.Timers.Timer2 和 System.threading.timer 7-8 小时后错误的定时事件调用

javascript - JavaScript/jQuery 倒计时器最简单的解决方案

javascript - 如何使用 Rxjs Observable 和 Async Pipe 在 Angular 4 中为每日重复发生的事件创建倒数计时器

java - Android:如何在不同线程中迭代 ArrayList<String>

java - 如何使用特定基数将任何有效字符串解析为整数?

java - java中如何调用当前类的实例创建者的构造函数?

java - 面临serialversionuid 问题

java - 如何将数据从保存在 ArrayList 中的 textField 值添加到 JTable?