JAVA 编写一个多线程的程序,要求每隔 1 秒在图形界面的文本框中刷新显示当前的系统时间,运行效果如图2所示。
时间: 2023-12-06 12:42:33 浏览: 75
以下是一个简单的 Java 多线程程序,每隔 1 秒钟更新一个文本框中的时间显示:
```java
import java.awt.BorderLayout;
import java.awt.Font;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Clock extends JFrame {
private JLabel timeLabel;
public Clock() {
super("Clock");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个面板来放置时间标签
JPanel panel = new JPanel();
add(panel, BorderLayout.CENTER);
// 创建时间标签并添加到面板上
timeLabel = new JLabel();
timeLabel.setFont(new Font("Arial", Font.PLAIN, 48));
panel.add(timeLabel);
// 更新时间的线程
Thread updateTimeThread = new Thread(() -> {
while (true) {
// 在事件分派线程上更新时间标签
SwingUtilities.invokeLater(() -> {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
timeLabel.setText(sdf.format(new Date()));
});
try {
Thread.sleep(1000); // 每隔 1 秒钟更新一次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
updateTimeThread.start();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
Clock clock = new Clock();
clock.setSize(400, 150);
clock.setVisible(true);
});
}
}
```
运行效果如下所示:
![Java 多线程时钟](https://cdn.jsdelivr.net/gh/Yuziquan/img/20210902110702.png)
阅读全文