




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 多线程实验课程名:Java程序设计专业班级: 12网工2班 学号: 201240420224 姓名: 李后浪 实验时间: 2014.6.6 实验地点: K4-307 指导教师: 冯 珊 一、实验目的和要求掌握使用Thread的子类创建线程;学习使用Thread类创建线程;学习处理线程同步问题。二、实验内容任务1 汉字打字练习。 实验要求:编写一个Java应用程序,在主线程中再创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。1、 源代码:WordThread.javaimport java.awt.*;public class WordThread extends Thread char word; int k=19968; Label com; WordThread(Label com) =com; public void run() k=19968; while(true) word=(char)k; com.setText(+word); try Thread.sleep(6000);/调用sleep方法使得线程中断6000豪秒 catch(InterruptedException e) k+; if(k=29968) k=19968; ThreadFrame.javaimport 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+=1000; scoreText.setText(得分:+score); inputText.setText(null); ThreadWordMainClass.javapublic class ThreadWordMainClass public static void main(String args) new ThreadFrame(); 2、运行结果:3、实验结果与分析:(明确地写出最后结果,并对自己得出的结果进行具体、定量的结果分析,说明其可靠性;杜绝只罗列不分析)在主线程中创建一个Frame类型的窗口,在该窗口中再创建1个线程giveWord。线程giveWord每隔2秒钟给出一个汉字,用户使用一种汉字输入法将该汉字输入到文本框中。任务2 双线程接力。 实验要求:编写一个应用程序,除了主线程外,还有两个线程:first和second。first负责模拟一个红色的按钮从坐标(10,60)运动到(100,60);second负责模拟一个绿色的按钮从坐标(100,60)运动到(200,60)。1、 源代码:MoveButton.javaimport java.awt.*;import java.awt.event.*;public class MoveButton extends Frame implements Runnable,ActionListener Thread first,second;/用Thread类声明first,second两个线程对象 Button redButton,greenButton,startButton; int distance=10; MoveButton() first=new Thread(this); /创建first线程,当前窗口做为该线程的目标对象 second=new Thread(this); /创建second线程,当前窗口做为该线程的目标对象 redButton=new Button(); greenButton=new Button(); redButton.setBackground(Color.red); greenButton.setBackground(Color.green); startButton=new Button(start); startButton.addActionListener(this); setLayout(null); add(redButton); redButton.setBounds(10,60,15,15); add(greenButton); greenButton.setBounds(100,60,15,15); add(startButton); startButton.setBounds(10,100,30,30); setBounds(0,0,300,200); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) try first.start(); second.start(); catch(Exception exp) public void run() while(true) if(Thread.currentThread()=first) /判断当前占有CPU资源的线程是否是first moveComponent(redButton); try Thread.sleep(20); catch(Exception exp) if(Thread.currentThread()=second) /判断当前占有CPU资源的线程是否是second moveComponent(greenButton); try Thread.sleep(10); catch(Exception exp) public synchronized void moveComponent(Component b) if(Thread.currentThread()=first) while(distance100&distance=100) b.setLocation(10,60); notifyAll(); if(Thread.currentThread()=second) while(distance=10&distance200) distance=10; b.setLocation(100,60); notifyAll(); MoveButtonMainClass.javapublic class MoveButtonMainClass public static void main(String args) new MoveButton(); 2、运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医学影像师考试试卷及答案解析
- 2025年文化创新与产业转型专业能力考核试题及答案
- 2025年师范专业英语考试试卷及答案
- 2025年社区护理管理考试试题及答案
- 2025年人才招聘与面试管理职能考核题及答案
- 2025年青少年心理健康教育知识考试卷及答案
- 2025年建筑师职业考试试题及答案列表
- 2025年教师职业能力培训考试题及答案
- 2025年环境污染治理与技术考试试卷及答案
- 2025年道德与法治教师培训考试试题及答案
- 课标视角下数学跨学科项目式学习案例设计与思考
- 2025届福建省厦门市高三下学期第二次质检(二模)历史试题
- 国开《离散数学》大作业及答案
- 离婚协议专用(2025年版)
- 船舶安全隐患排查
- 北森高管测评试题及答案
- 离婚协议书 标准版电子版(2025年版)
- 2025年服装制版师(高级)职业技能鉴定考试题库
- 2025届西藏林芝地区五下数学期末考试试题含答案
- 财政投资评审咨询服务预算和结算评审项目投标文件(技术方案)
- 企业技术管理咨询服务合同书
评论
0/150
提交评论