(4)编写一个Java应用程序,在主线程中再创建一个Frame类型的窗口,在该窗口中再创建一个线程giveWord。线程giveWord每隔6秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。
时间: 2024-02-16 17:01:31 浏览: 119
以下是Java应用程序的实现代码:
```java
import java.awt.*;
import javax.swing.*;
public class MainFrame extends JFrame {
private JTextField textField;
public MainFrame() {
super("输入汉字");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setSize(300, 100);
setLocationRelativeTo(null);
textField = new JTextField(10);
add(textField);
setVisible(true);
new Thread(new GiveWordTask()).start();
}
private class GiveWordTask implements Runnable {
private final String[] words = new String[]{"你", "好", "啊"};
@Override
public void run() {
while (true) {
int index = (int) (Math.random() * words.length);
String word = words[index];
textField.setText("");
textField.requestFocus();
JOptionPane.showMessageDialog(null, word);
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new MainFrame();
}
}
```
在主线程中创建一个Frame类型的窗口,使用FlowLayout布局,大小为300x100,设置它的关闭操作为退出程序。
在该窗口中创建一个文本框组件,并将其添加到窗口中。
创建一个内部类GiveWordTask,实现Runnable接口,用于在窗口中启动一个线程,每隔6秒钟给出一个汉字。
在run方法中,定义一个字符串数组words,存储要输出的汉字。通过Math.random()方法随机获取一个汉字,使用JOptionPane.showMessageDialog()方法弹出一个对话框,显示该汉字。然后清空文本框的内容,让它获得焦点,等待用户输入。
最后,让线程休眠6秒钟,继续循环输出汉字。
在主方法中,创建一个MainFrame对象,启动程序。
阅读全文