Java 我想在另一个类中使用我的计数器,但它显示为其初始值零

Java 我想在另一个类中使用我的计数器,但它显示为其初始值零,java,timer,count,counter,Java,Timer,Count,Counter,我试图创建一个程序,在5分钟内产生一个随机的节拍数,然后在5分钟后在屏幕上显示最终的节拍数。下面是我的两个类,它们与我当前的问题有关。我尝试了很多东西,但最终的节拍数仍然显示为零。我对Java非常陌生,所以我希望尽可能多地了解具体情况。提前谢谢 另外,我还想让用户在计时器结束后在屏幕上输入他们的猜测。有人能给我指出正确的方向吗?我在网上找不到任何关于我将如何去做的东西。我不想要一个对话框(除非我能改变它的外观?) 这是我的计时器类,我从中获取计数。定时器设置为10秒 package com.ho

我试图创建一个程序,在5分钟内产生一个随机的节拍数,然后在5分钟后在屏幕上显示最终的节拍数。下面是我的两个类,它们与我当前的问题有关。我尝试了很多东西,但最终的节拍数仍然显示为零。我对Java非常陌生,所以我希望尽可能多地了解具体情况。提前谢谢

另外,我还想让用户在计时器结束后在屏幕上输入他们的猜测。有人能给我指出正确的方向吗?我在网上找不到任何关于我将如何去做的东西。我不想要一个对话框(除非我能改变它的外观?)

这是我的计时器类,我从中获取计数。定时器设置为10秒

package com.home.timer;

import java.util.Timer;
import java.util.TimerTask;

public class MyTimer extends TimerTask
{
    Timer timer;
    int count = 0;
    public MyTimer(){   
    }

    public MyTimer (Timer timer)
    {
        this.timer = timer;
    }

    public void toDo()
    {
        System.out.println (" Count: " + (count++));
    }

    long start = System.currentTimeMillis();
    long end = start + 10*1000;

    @Override
    public void run()
    {
        toDo();
        if (System.currentTimeMillis() > end)//this is condition when you want to stop task
        {
            timer.cancel();
        }
    }
}

您有两个
MyTimer
类的实例。一个是静态的-
t
,另一个不是-
myTask
计时器实际使用的实例是
myTask
,但您使用另一个实例打印count-
g.drawString(t.count+“beats”,200200)。因此,打印的计数为
0
也就不足为奇了

尝试
g.drawString(myTask.count+beats),200200

package com.home.timer;

import java.util.Timer;
import java.util.TimerTask;

public class MyTimer extends TimerTask
{
    Timer timer;
    int count = 0;
    public MyTimer(){   
    }

    public MyTimer (Timer timer)
    {
        this.timer = timer;
    }

    public void toDo()
    {
        System.out.println (" Count: " + (count++));
    }

    long start = System.currentTimeMillis();
    long end = start + 10*1000;

    @Override
    public void run()
    {
        toDo();
        if (System.currentTimeMillis() > end)//this is condition when you want to stop task
        {
            timer.cancel();
        }
    }
}