gpt4 book ai didi

java - 如何在我的小程序中进行倒计时?

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

我正在编写一个游戏,需要 60 秒倒计时。我希望当我单击“开始”按钮时它开始倒计时。我现在可以手动倒计时,但需要它自动执行。

这是一个 Java Applet,而不是 Javascript。

有没有办法让我在使用其他按钮时让这个计时器在后台运行?我正在使用 JLabels 和 JButtons。我可以同时运行两个 ActionListener 吗?

最佳答案

使用javax.swing.Timer

运行这个例子。您将看到在时间流逝期间您仍然可以执行其他操作。当时间流逝时,单击"is"或“否”按钮

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Test extends JApplet {

private JLabel label1 = new JLabel("60");
private JLabel label2 = new JLabel("Yes");
private JButton jbt1 = new JButton("Yes");
private JButton jbt2 = new JButton("No");
private int count = 60;
private Timer timer;

public Test() {
JPanel panel1 = new JPanel(new GridLayout(1, 2));
panel1.add(label1);
panel1.add(label2);
label1.setHorizontalAlignment(JLabel.CENTER);
label2.setHorizontalAlignment(JLabel.CENTER);
JPanel panel2 = new JPanel();
panel2.add(jbt1);
panel2.add(jbt2);

add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);

timer = new Timer(1000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
count--;
if (count == 0) timer.stop();

label1.setText(String.valueOf(count));

}
});
timer.start();

jbt1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
label2.setText("Yes");
}
});
jbt2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
label2.setText("No");
}
});
}
}

关于java - 如何在我的小程序中进行倒计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354228/

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