[英]How can I make a countdown in my 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");
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.