gpt4 book ai didi

java - 使用javax.swing.Timer在Java中制作倒计时器

转载 作者:行者123 更新时间:2023-12-02 12:27:43 24 4
gpt4 key购买 nike

Possible Duplicate:
Stop timer with conditional only works first time?

我对如何使用 swing 而不是 util 计时器来制作计时器感到非常困惑。

我正在制作一款游戏,用户必须在 30 秒的时间内回答问题。我有一个 PlayFrame,其中显示时间,并且 PlayFrame 中有一个名为 startTimer 的方法,其中包含所有计时器内容。

public static void startTimer() {

int elapsedSeconds = 0;
javax.swing.Timer myTimer = new javax.swing.Timer(1000, new MyTimerActionListener());
elapsedSeconds++;

if (elapsedSeconds == 30) {
myTimer.stop();
timerLabel.setText("0");
wrong();
} else {
String text = String.format("f", 30 - elapsedSeconds);
timerLabel.setText(text);
}

if (myTimer != null && myTimer.isRunning()) {
myTimer.stop();
myTimer = null;
timerLabel.setText("0");
} else {
elapsedSeconds = 0;
myTimer = new javax.swing.Timer(1000, new MyTimerActionListener());
myTimer.start();
String text = String.format("t", 30);
timerLabel.setText(text);
}
}

我想要这个方法做的是有一个计时器,从 30 开始倒计时,直到问题得到正确回答。如果答案不正确,我希望计时器停止。

对于答案,也许一些伪代码(或真实代码)可以让我朝着正确的方向前进。这是供个人使用,而不是家庭作业或任何东西。

请记住,这是我整个代码的一部分,它需要与代码的其他部分配合使用。我会根据要求提供更多信息,谢谢!

编辑:新的 startTimer() 方法注意所有 System.out.print 仅用于测试:

  public static void startTimer() {
class TimerListener implements ActionListener {
Timer timer = new Timer(1000, new TimerListener());
int elapsedSeconds = 30;
String seconds = Integer.toString(elapsedSeconds);

@Override
public void actionPerformed(ActionEvent evt) {
timer.start();
if (elapsedSeconds == 0) {
//System.out.print("here");
timer.stop();
PlayFrame.wrong();
}
else{
//System.out.print("hersfde");
elapsedSeconds--;
PlayFrame.timerLabel.setText(seconds);
}
//System.out.println(elapsedSeconds);
}
}
//System.out.print("l");
}

什么也没做,也不知道为什么。

最佳答案

这就是我制作倒计时器的方法:

Timer timer = new Timer(1000, new TimerListener());

class TimerListener implements ActionListener{
int elapsedSeconds = 30;

public void actionPerformed(ActionEvent evt){
elapsedSeconds--;
timerLabel.setText(elapsedSeconds)
if(elapsedSeconds <= 0){
timer.stop();
wrong()
// fill'er up here...
}
}

}

关于java - 使用javax.swing.Timer在Java中制作倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com