我想创建一个显示随机数的程序,在JLabel中一次一个地闪烁,或者只是在控制台中。我正在制作一个游戏,玩家需要记住显示的数字,两次闪回。 有谁知道如何使数字闪烁?
答案 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);
请注意,它没有经过测试,这只是我提出的第一个概念,但也许你可以从中解决这个问题。