【问题标题】:Why does my java timer not repeat the code at all?为什么我的 java 计时器根本不重复代码?
【发布时间】:2019-09-23 15:10:51
【问题描述】:

所以我想制作一个计时器来了解用户何时按下按钮,但它似乎并没有按应有的方式工作。

当我在 public void actionPerformed() 方法中放入一些东西时,它根本不会重复 - 它应该按照我的指示每 10 毫秒执行一次。我不知道它可能是什么,因为有 0 个警告和 0 个错误。

代码如下:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class timertest {

    static Timer timer = new Timer(10,new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("test");

        }
    });

    public static void main(String[] args) { 
        timer.start();
    }
}

【问题讨论】:

标签: java swing timer


【解决方案1】:

因为你不是在the Event Dispatch Thread.里面启动它

public class TimerTest {

    static Timer timer = new Timer(10, new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("test");

        }

    });

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> { //Run in EDT
            timer.start();
        });
    }
}

另外,请记住,强烈建议(而且它有助于我们)遵循标准命名约定 - 所有类名都应以大写字母开头。

【讨论】:

  • 谢谢!对不起类名,我急于测试它,因为我打算使用它的项目没有工作(现在它可以了)!下次我会记住的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-20
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
相关资源
最近更新 更多