首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么才能在我的小程序里做倒计时呢?

我怎么才能在我的小程序里做倒计时呢?
EN

Stack Overflow用户
提问于 2013-12-03 14:45:35
回答 1查看 847关注 0票数 0

我在写一个游戏,需要60秒的倒计时。当我点击“开始”按钮时,我希望它开始倒数。我可以把它手动倒计时,但需要它这样做自动。

这是一个Java小程序,而不是Javascript。

有什么方法可以让这个计时器在后台运行,而我使用其他按钮吗?我正在使用JLabels和JButtons。我能让两个ActionListeners同时运行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-03 15:12:42

使用javax.swing.Timer

运行此示例。您将看到在运行时间时仍然可以执行其他操作。单击“是”或“否”按钮,时间正在流逝。

代码语言:javascript
复制
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");
            }
        });
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20354228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档