Java 中的闪烁整数

Blinking integers in Java

我想制作一个显示随机数的程序,在 JLabel 中或仅在控制台中一次显示一个。我正在制作一个游戏,玩家需要记住显示的数字两次闪烁。 有谁知道如何让数字闪烁?

不幸的是,我没有任何方便的 GUI 项目来测试它(我可能会在一瞬间作为命令行项目),但我认为一种方法是:

(我已经删除了 HideTask,因为当你想再次 运行 它时它会带来一些麻烦,而且我认为手头的任务并不真正需要它 - 只需调用 sleep() : ))

class ShowTask extends TimerTask {
    JLabel label;
    Random generator = new Random();
    //HideTask hTask;
    //java.util.Timer timer = new java.util.Timer();
    long period = 500; // ms

    public Task(JLabel pLabel){
        label = pLabel;
        //hTask = new HideTask(pLabel);
    }

    public void run(){
        int i = generator.nextInt(100);
        setLabel(i);
        // if you want it to go SHOW HIDE SHOW HIDE instead of SHOW SHOW SHOW then:
        //timer.schedule(hTask, period);
        // just wait
        Thread.sleep(period);
        hideLabel();
    }

    void setLabel(int i){
        ...
    }
}
/*
class HideTask extends TimerTask {
    JLabel label;

    public HideTask(JLabel pLabel){
        label = pLabel;
    }

    public void run(){
        hideLabel();
    }

    void hideLabel(){
        ...
    }
}
*/

你想开始的时间:

ShowTask task = new ShowTask();
long delay = 0; // ms 
long period = 1000; // ms
java.util.Timer timer = new java.util.Timer();
timer.scheduleAtFixedRate(task, delay, period);

请注意,它没有经过测试,这只是我提出的第一个概念,但也许您可以从中继续努力。