编写程序:把GUI和多线程结合,实现在界面上每隔一秒显示系统时间,要求通过实现Runnable接口的方法实现多线程。
时间: 2024-03-21 15:39:58 浏览: 21
好的,我可以为您提供一个简单的Java程序,实现在GUI界面上每隔一秒钟显示系统时间,使用多线程来完成任务。请参考下面的代码:
```java
import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeDisplay extends JFrame implements Runnable {
private JLabel timeLabel;
public TimeDisplay() {
setTitle("时间显示器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
timeLabel = new JLabel();
timeLabel.setFont(new Font("宋体", Font.BOLD, 20));
add(timeLabel, BorderLayout.CENTER);
setVisible(true);
// 创建一个新的线程来更新时间
Thread t = new Thread(this);
t.start();
}
public void run() {
while (true) {
try {
// 等待1秒钟
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 更新时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeStr = sdf.format(new Date());
timeLabel.setText(timeStr);
}
}
public static void main(String[] args) {
TimeDisplay td = new TimeDisplay();
}
}
```
这个程序创建了一个GUI窗口,里面有一个JLabel标签用于显示当前时间。程序实现了Runnable接口,并在run()方法中使用了一个无限循环来等待1秒钟,然后更新时间标签。在main()方法中,创建了一个新的TimeDisplay对象,它会自动启动一个新的线程来运行run()方法。