把GUI和多线程结合,实现在界面上每隔一秒显示系统时间,要求通过实现Runnable接口的方法实现多线程。
时间: 2024-03-21 16:39:58 浏览: 42
好的,可以通过以下步骤实现:
1. 创建一个GUI界面,并在其中添加一个文本框用于显示系统时间。
2. 实现一个类,实现Runnable接口,并在其中编写每隔一秒获取系统时间并将其显示在文本框中的逻辑。
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeRunnable implements Runnable {
private JTextArea textArea;
public TimeRunnable(JTextArea textArea) {
this.textArea = textArea;
}
@Override
public void run() {
while (true) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new Date());
textArea.setText(time);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
3. 在GUI界面的构造函数中创建一个新的线程,并将TimeRunnable的实例作为参数传递给它。
```java
public class MyFrame extends JFrame {
private JTextArea textArea;
public MyFrame() {
// 创建GUI界面,省略代码
// 创建一个新的线程并启动
TimeRunnable tr = new TimeRunnable(textArea);
Thread t = new Thread(tr);
t.start();
}
}
```
这样,每隔一秒钟,系统时间就会更新并显示在文本框中。同时,由于是在新线程中运行,不会影响GUI界面的响应性能。
阅读全文