Java 多线程程序:汉字识别游戏
Java 多线程程序:汉字识别游戏
本程序使用 Java 多线程实现了一个简单的汉字识别游戏。程序界面包含一个显示汉字的标签、一个开始按钮、一个输入框和一个得分框。用户需要根据标签显示的汉字输入对应字符,并通过正确输入来获得分数。
代码示例
// WordThread.java
import java.awt.*;
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(''+word);
try {
sleep(6000); // 调用sleep方法使得线程中断6000豪秒
} catch (InterruptedException e) {}
k++;
if (k >= 29968) k = 19968;
}
}
}
// ThreadFrame.java
import java.awt.*;
import java.awt.event.*;
public class ThreadFrame extends Frame implements ActionListener
{
Label wordLabel;
Button button;
TextField inputText, scoreText;
WordThread giveWord; // 用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); // 创建giveWord,将wordLabel传递给WordThread构造方法的参数
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调用方法isAlive()
{
giveWord = new WordThread(wordLabel);
}
try
{
giveWord.start(); // giveWord调用方法start()
} catch (Exception exe) {}
}
else if (e.getSource() == inputText)
{
if (inputText.getText().equals(wordLabel.getText()))
{
score++;
}
scoreText.setText("得分:" + score);
inputText.setText(null);
}
}
}
// ThreadWordMainClass.java
public class ThreadWordMainClass
{
public static void main(String args[])
{
new ThreadFrame();
}
}
程序说明
-
WordThread 类:
- 该类继承自 Thread 类,代表一个线程。
run()方法是线程的执行入口,它不断地随机生成一个汉字,并将其显示在标签上。sleep(6000)方法使线程休眠 6000 毫秒,以便用户有时间查看并输入汉字。
-
ThreadFrame 类:
- 该类继承自 Frame 类,代表程序的主窗口。
- 初始化时创建了一个 WordThread 对象
giveWord,用于显示汉字。 actionPerformed()方法处理按钮点击和输入框输入事件。- 当点击开始按钮时,启动
giveWord线程,开始显示汉字。 - 当用户在输入框中输入汉字并回车时,程序会判断输入是否正确,并更新得分。
运行结果
运行程序后,将出现一个窗口,包含一个显示汉字的标签、一个开始按钮、一个输入框和一个得分框。用户可以点击开始按钮,然后在输入框中输入标签显示的汉字,并通过正确输入来获得分数。
注意
- 程序中使用了 Java 的 AWT 图形库,因此需要导入
java.awt.*包。 - 程序使用了多线程技术,因此需要熟悉线程的基本概念和使用方法。
- 程序中的汉字范围是从 19968 到 29968,对应 Unicode 编码中的汉字字符。
- 程序仅供学习和参考,您可以根据需要进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/AjH 著作权归作者所有。请勿转载和采集!