gpt4 book ai didi

Java 定时器和 Action 监听器

转载 作者:行者123 更新时间:2023-12-01 12:16:04 25 4
gpt4 key购买 nike

Baiscilly,我正在为一个项目制作这个游戏,但我不知道如何让计时器工作,这是我尝试的代码。

import java.awt.event.*;
import java.util.Timer;

public class Timers {
private int timeLeft = 60;
private void timer() {
while(timeLeft > 0){
int delay = 1000;
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
timeLeft--;
}{
new Timer(delay, taskPerformer).start();
};
};
}
}
}

我不知道自己做错了什么,也不知道下一步该做什么。除此之外,我还需要创建一个 Actionlistener 来查看用户的答案是否与预设答案相同。

import javax.swing.*;

import java.awt.event.*;

...

    JTextField Janswer = new JTextField();
Janswer.setBounds(110, 70, 150, 25);
newFrame.add(Janswer);
if Janswer = equations.getanswer(){
score++;

我想如果我给出了这么多,我也可以告诉你它从哪里得到答案

public class Equations {
private static String equation;
private int answer;
Problems problem = new Problems();

public Equations() {
equation = problem.getFirstNumber() + " " + problem.getSign() + " " + problem.getSecondNumber();
String sign = problem.getSign();
if (sign.equals("+"))
answer = problem.getFirstNumber() + problem.getSecondNumber();
else if (sign.equals("-"))
answer = problem.getFirstNumber() - problem.getSecondNumber();
else if (sign.equals("*"))
answer = problem.getFirstNumber() * problem.getSecondNumber();
}

public static String getEquations() {
return equation;
}
public int getAnswer() {
return answer;
}
}

感谢大家为我提供的任何帮助,如果我需要以任何方式更改我的帖子,请告诉我,我是新手!

最佳答案

主要问题是您正在使用 while-loop ,这正在创建一堆新的 Timer每次迭代时都会减少 timeLeft值(value)。您只需要一个Timer .

根据您想要做什么,您可以做类似的事情

ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Time's up!");
}
};
new Timer(60 * 1000, taskPerformer).start();

这将在 1 分钟内建立回调,这可以让您定义超时...

知道,如果你想要一个倒计时器,你可以这样做......

ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
count++;
if (count >= 59) {
((Timer)evt.getSource()).stop();
System.out.println("Time's up!");
}
}
};
new Timer(1000, taskPerformer).start();

基本上从 0 数到 60,并且每秒更新一次(您必须使用 60 - count 来获取倒计时值)...

参见How to use Swing Timers了解更多详情

关于Java 定时器和 Action 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009069/

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