我一直在使用 Java Applet 开发一个简单的游戏,玩家的目标是在 30 秒的时间内获得尽可能多的分数。现在,我正在使用 Swing 计时器从 30 秒开始倒计时,一旦达到 0 标记,就会显示“游戏结束”屏幕以及玩家的得分。我有这些实例变量:
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
screenState = 0;
repaint();
}
};
Timer displayTimer = new Timer(30000, listener);
当玩家点击“播放”按钮时,我执行displayTimer.start();
。
然后,我在我的绘画课的适当案例中有这个:
g.drawString("Time Remaining: " + displayTimer.getDelay()/1000, 650, 100);
很明显,现在它只是显示一个静态的“剩余时间:30”,并且屏幕会在 30 秒后切换。我想弄清楚的是如何每隔一秒重新绘制这个值,以便它成为一个实时计时器。到目前为止,我能找到的唯一帮助是人们使用组件。
最佳答案
ActionListener listener = new ActionListener() {
int count = 0;
@Override
public void actionPerformed(ActionEvent e) {
if (count++==30) {
screenState = 0;
}
repaint();
}
};
Timer displayTimer = new Timer(1000, listener); // make it 30 times faster
关于java - 如何以一秒为间隔显示 Swing 计时器的剩余时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24237030/