在Java中闪烁整数

时间:2015-01-22 09:46:38

标签: java random int blink

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

1 个答案:

答案 0 :(得分:0)

我很遗憾没有任何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);

请注意,它没有经过测试,这只是我提出的第一个概念,但也许你可以从中解决这个问题。