我是靠谱客的博主 优雅咖啡豆,最近开发中收集的这篇文章主要介绍多线程 打字练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

         编写一个Java应用程序,在主线程中再创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。

WordThread.java
import java.awt.*;
public class WordThread extends Thread
{
int
time = 6000;
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{
//【代码1】//调用sleep方法使得线程中断6000豪秒
//sleep(6000);
//更改为线程中断time毫秒
sleep(time);
}
catch(InterruptedException e){}
k++;
if(k>=29968) k=19968;
}
}
public void setTime(int n) {
time = n;
}
}
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;// 【代码2】// 用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);
// 【代码3】//创建giveWord,将wordLabel传递给WordThread构造方法的参数
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调用方法isAlive()
{
giveWord=new WordThread(wordLabel);
}
try
{
//【代码5】//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();
}
}

项目展示:


最后

以上就是优雅咖啡豆为你收集整理的多线程 打字练习的全部内容,希望文章能够帮你解决多线程 打字练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部