如何在我的applet中倒计时?

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

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

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

使用javax.swing.Timer

运行此示例。 您将看到在时间运行时仍可执行其他操作。 当时间到了,点击是或否按钮

 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"); } }); } }