用Java写一个日历加钟表要带图形界面
时间: 2024-05-01 21:19:48 浏览: 51
好的,我可以为您提供一个简单的Java日历和钟表的示例程序,它使用Java Swing库实现图形用户界面。下面是代码:
```java
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.*;
public class CalendarClock extends JFrame implements ActionListener, Runnable {
private JLabel dateLabel, timeLabel;
private Timer timer;
public CalendarClock() {
super("Calendar and Clock");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建日期标签和时间标签
dateLabel = new JLabel();
timeLabel = new JLabel();
// 设置标签样式
dateLabel.setFont(new Font("SanSerif", Font.PLAIN, 24));
timeLabel.setFont(new Font("SanSerif", Font.PLAIN, 48));
// 创建面板并将标签添加到面板
JPanel panel = new JPanel(new GridLayout(2, 1));
panel.add(dateLabel);
panel.add(timeLabel);
// 将面板添加到窗口
getContentPane().add(panel, BorderLayout.CENTER);
// 设置窗口大小
setSize(400, 200);
// 开始计时器
timer = new Timer(1000, this);
timer.start();
// 显示窗口
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// 更新日期和时间
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss a");
Calendar cal = Calendar.getInstance();
dateLabel.setText(dateFormat.format(cal.getTime()));
timeLabel.setText(timeFormat.format(cal.getTime()));
}
public void run() {
// 循环更新日期和时间
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
actionPerformed(null);
}
}
public static void main(String[] args) {
// 启动应用程序
new Thread(new CalendarClock()).start();
}
}
```
该程序创建一个带有日期和时间标签的窗口,使用Swing的计时器每秒更新一次标签内容。同时,该程序还在单独的线程中循环更新日期和时间,以确保在计时器暂停时仍然能够保持最新状态。
您可以根据需要对该程序进行修改和扩展,以实现更复杂的日历和钟表功能。
阅读全文