📜  Java Swing-数字时钟(digital clock)(1)

📅  最后修改于: 2023-12-03 15:31:32.550000             🧑  作者: Mango

Java Swing-数字时钟(digital clock)

Java Swing 是用于实现图形用户界面 (GUI) 的一组 API,它提供一组丰富的 GUI 组件,如按钮、文本框、表格和菜单等。在本文中,我们将介绍如何使用 Java Swing 实现数字时钟。

创建数字时钟界面

对于数字时钟,我们需要一个标签来显示当前时间。我们可以通过使用 JLabel 组件来实现数字时钟界面。在 JLabel 中显示时间,我们需要创建一个定时器,在每秒钟更新标签的显示。

创建时钟定时器

我们可以使用 javax.swing.Timer 类来创建定时器。定时器将在指定延迟之后动作,然后按照指定的时间间隔重复动作。在我们的数字时钟程序中,我们将创建一个定时器,在每秒钟更新标签的显示。

Timer timer = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        label.setText(formatter.format(date));
    }
});
timer.setRepeats(true);
timer.start();

在上述代码中,我们创建了一个 Timer 对象,它将在每秒钟动作,更新 JLabel 标签的值。我们使用 SimpleDateFormat 对象来格式化时间,然后将格式化后的时间设置为标签的文本。

完整代码示例

下面是完整的数字时钟示例:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;

public class DigitalClock {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Digital Clock");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());

        JLabel label = new JLabel();
        label.setFont(new Font("Serif", Font.BOLD, 48));
        label.setHorizontalAlignment(JLabel.CENTER);

        frame.add(label);
        frame.setSize(300, 150);
        frame.setVisible(true);

        Timer timer = new Timer(1000, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Date date = new Date();
                SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
                label.setText(formatter.format(date));
            }
        });
        timer.setRepeats(true);
        timer.start();
    }
}
结论

在本文中,我们介绍了如何使用 Java Swing 实现数字时钟。我们使用 JLabel 组件来显示当前时间,使用 javax.swing.Timer 类来创建定时器,每秒钟更新标签的显示。希望本文可以对 Java Swing 的学习有所帮助。