Java 多线程实现汉字随机显示程序:WordThread 和 ThreadFrame 类
Java 多线程实现汉字随机显示程序:WordThread 和 ThreadFrame 类
这是一个简单的 Java 多线程程序,使用 WordThread 类和 ThreadFrame 类来实现随机显示汉字并进行用户输入验证。
WordThread 类:
import java.awt.Label;
public class WordThread extends Thread {
char word;
int k = 19968;
Label com;
WordThread(Label com) {
this.com = com;
}
public void run() {
k = 19968;
while (true) {
word = (char) k;
com.setText(String.valueOf(word));
try {
sleep(6000);
} catch (InterruptedException e) {}
k++;
if (k >= 29968) k = 19968;
}
}
}
ThreadFrame 类:
import java.awt.*;
import java.awt.event.*;
public class ThreadFrame extends Frame implements ActionListener {
Label wordLabel;
Button button;
TextField inputText, scoreText;
WordThread giveWord;
int score = 0;
ThreadFrame() {
wordLabel = new Label(' ', Label.CENTER);
wordLabel.setFont(new Font('', Font.BOLD, 72));
button = new Button('开始');
inputText = new TextField(3);
scoreText = new TextField(5);
scoreText.setEditable(false);
giveWord = new WordThread(wordLabel);
button.addActionListener(this);
inputText.addActionListener(this);
add(button, BorderLayout.NORTH);
add(wordLabel, BorderLayout.CENTER);
Panel southP = new Panel();
southP.add(new Label('输入标签所显示的汉字后回车:'));
southP.add(inputText);
southP.add(scoreText);
add(southP, BorderLayout.SOUTH);
setBounds(100, 100, 350, 180);
setVisible(true);
validate();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
if (!giveWord.isAlive()) {
giveWord = new WordThread(wordLabel);
giveWord.start();
}
} else if (e.getSource() == inputText) {
if (inputText.getText().equals(wordLabel.getText())) {
score++;
}
scoreText.setText('得分:' + score);
inputText.setText('');
}
}
public static void main(String[] args) {
new ThreadFrame();
}
}
程序说明:
WordThread类中的run()方法负责不断地随机生成一个汉字,并更新Label上的显示内容。ThreadFrame类创建了一个WordThread对象,并通过按钮启动该线程,使汉字开始随机显示。- 当用户在文本框中输入正确的汉字并回车后,程序会统计得分并清空文本框。
程序中主要修正的错误:
WordThread类中com.setText()方法应改为com.setText(String.valueOf(word))以正确设置标签上的汉字。ThreadFrame类中actionPerformed()方法的得分统计和输入框清空逻辑错误。
注意:
- 程序使用 Unicode 编码范围 19968-29967 来随机生成汉字。
sleep()方法用于控制汉字显示的间隔时间。- 此程序仅供学习参考,您可能需要根据您的具体需求进行修改。
原文地址: https://www.cveoy.top/t/topic/zXc 著作权归作者所有。请勿转载和采集!