下面是一个使用 JFrame 实现 60 秒钟倒计时功能的示例代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CountdownTimer extends JFrame {
    private JLabel countdownLabel;

    public CountdownTimer() {
        setTitle('倒计时');
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setLocationRelativeTo(null);
        setLayout(new FlowLayout());

        countdownLabel = new JLabel('60');
        countdownLabel.setFont(new Font('Arial', Font.BOLD, 48));
        add(countdownLabel);

        Timer timer = new Timer(1000, new ActionListener() {
            int count = 60;

            @Override
            public void actionPerformed(ActionEvent e) {
                count--;
                countdownLabel.setText(Integer.toString(count));

                if (count == 0) {
                    ((Timer) e.getSource()).stop();
                    JOptionPane.showMessageDialog(null, '倒计时结束!');
                    int option = JOptionPane.showConfirmDialog(null, '确认退出窗口?');
                    if (option == JOptionPane.YES_OPTION) {
                        dispose();
                    }
                }
            }
        });

        timer.start();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new CountdownTimer().setVisible(true);
            }
        });
    }
}

这个示例通过使用一个 Timer 对象来实现倒计时功能。在每次计时器触发时,将倒计时的数字减 1,并更新 JLabel 的文本内容。当倒计时到达 0 时,弹出一个消息框显示倒计时结束的消息,并询问用户是否确认退出窗口。如果用户点击了确认按钮,就调用 dispose() 方法关闭窗口。


原文地址: http://www.cveoy.top/t/topic/vTH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录