摆动计时器

时间:2015-05-21 04:46:22

标签: java swing timer

对于这个我正在制作java课程的游戏,我希望角落里的计时器显示从0

计算出来

我创建了一个表示秒数的变量,其中==> double s = 0;

我的想法是使用Timer对象,我可以每秒递增变量并在字符串上使用repaint()方法

然而,我误解了计时器对象的工作方式,并且在延迟之后它迅速计数到无穷大。我不知道现在该做什么。我们将不胜感激。

这是我的代码,感谢您的帮助:

 int delay = 5000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {


    @Override
    public void actionPerformed(ActionEvent arg0) {
        s=(int)s+1;


    }
  };
  new Timer(delay, taskPerformer).start();
  String t = "" + s;
g.drawString(t, 100, 100);
repaint();

2 个答案:

答案 0 :(得分:0)

这样的事情:(你可能需要根据需要改变它)

boolean temp=true;
long startTime = System.nanoTime();
while(temp){

    float time = (System.nanoTime()-startTime)/ 10000000.000f;

    System.out.println(time);
}

答案 1 :(得分:0)

您可以尝试做的是实现Runnable接口,然后启动用于绘制组件的类的新Thread。由于Thread实现了Runnable接口,您将能够在程序中创建一个新的执行点,您可以在重新绘制组件之前使用Thread.sleep()调用延迟。以下是您应该尝试做的一个示例:

    Thread thread = new Thread(ClassNameHere);
    thread.start();

如果您有兴趣尝试这一点,可以在ThreadsRunnable界面上的API上找到更多信息。