实验五 多线程程序设计(汽院含答案)(4)

2020-04-14 01:03

} catch(Exception exp){} distance=distance+1; b.setLocation(distance,60); if(distance>200) { //distance=10; b.setLocation(100,60); notifyAll(); } } if(Thread.currentThread()==third) { while(distance>=10&&distance<200) try{ wait(); } catch(Exception exp){} distance=distance+1; b.setLocation(distance, 60); if(distance>300) {distance=10; b.setLocation(200, 60); notifyAll(); } } } } MoveButtonMainClass.java public class MoveButtonMainClass { public static void main(String args[]) { new MoveButton(); } }

3. 线程的控制

编写一个程序,动画显示文本域中的字符串。

1) 阅读并分析以下程序,将程序中的代码补充完整,编译并运行程序,查看结果。 import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea;

import javax.swing.border.BevelBorder;

public class RunnableDemo extends JFrame implements Runnable { // 动画显示的文本字符串

private String introduction = \现在大家已经对计算机很熟悉了,如今计算机的操作\

+ \系统可以同时执行多个任务,在听歌的同时能够打字、下载文件,在聊天窗口打\ + \字的时候,对方同时还能通过视频看到你;听到你。这一切都是使用多任务实现\ + \的,Java语言使用多线程实现一个程序中的多个任务同时运行。程序员可以在程\ + \序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机\ + \制被称为多线程。\;

JTextArea textArea; // 文本域组件 JLabel label; Thread thread;

public RunnableDemo() { setTitle(\线程的控制\);

label = new JLabel(\多线程简介:\); // 标签组件

getContentPane().add(label, BorderLayout.NORTH);// 添加标签到窗体

textArea = new JTextArea(\); // 初始化文本域组件 textArea.setBorder(new BevelBorder(BevelBorder.LOWERED));// 设置边框 textArea.setLineWrap(true); // 设置自动折行

getContentPane().add(textArea, BorderLayout.CENTER);// 添加文本域组件到文本框

setBounds(100, 100, 383, 225); // 设置窗体大小位置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); // 显示窗体

【补充代码】 //创建thread线程,当前窗口做为该线程的目标对象 【补充代码】 //启动thread线程 }

//Runnable接口方法,是线程的执行方法 @Override

public void run() {

String[] intros = introduction.split(\); // 将字符串分割为数组 for (String ch : intros) { // ForEach遍历字符串数组 textArea.append(ch); // 添加一个字符到文本域 try {

【补充代码】 // 线程休眠0.1秒

} catch (InterruptedException e) { e.printStackTrace(); } } }

public static void main(String args[]) { new RunnableDemo(); // 创建本类实例对象 } }

import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.border.BevelBorder; //import javax.swing.plaf.SliderUI; public class RunnableDemo extends JFrame implements Runnable { /** * */ private static final long serialVersionUID = 1L; // 动画显示的文本字符串 private String introduction = \现在大家已经对计算机很熟悉了,如今计算机的操作\ + \系统可以同时执行多个任务,在听歌的同时能够打字、下载文件,在聊天窗口打\ + \字的时候,对方同时还能通过视频看到你;听到你。这一切都是使用多任务实现\ + \的,Java语言使用多线程实现一个程序中的多个任务同时运行。程序员可以在程\ + \序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机\ + \制被称为多线程。\; JTextArea textArea; // 文本域组件 JLabel label; Thread thread; public RunnableDemo() { setTitle(\线程的控制\); label = new JLabel(\多线程简介:\); // 标签组件 getContentPane().add(label, BorderLayout.NORTH);// 添加标签到窗体 textArea = new JTextArea(\); // 初始化文本域组件 textArea.setBorder(new BevelBorder(BevelBorder.LOWERED));// 设置边框 textArea.setLineWrap(true); // 设置自动折行 getContentPane().add(textArea, BorderLayout.CENTER);// 添加文本域组件到文本框 setBounds(100, 100, 383, 225); // 设置窗体大小位置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); // 显示窗体 Thread thread = new Thread(this);//【补充代码】 //创建thread线程,当前窗口做为该线程的目标对象 thread.start();//【补充代码】 //启动thread线程 } //Runnable接口方法,是线程的执行方法 @Override public void run() { String[] intros = introduction.split(\); // 将字符串分割为数组 for (String ch : intros) { // ForEach遍历字符串数组 textArea.append(ch); // 添加一个字符到文本域 try { Thread.sleep(100);//【补充代码】 // 线程休眠0.1秒 } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String args[]) { new RunnableDemo(); // 创建本类实例对象 } }

2) 在窗体的南面添加三个按钮,为程序添加线程控制功能,要求点击开始按钮(startBtn),线程

开始启动,文字逐个显示,并且将按钮状态改变为禁用(因为线程不能重复启动);点击暂停按钮(pauseBtn),线程暂停,文字显示停止;点击恢复按钮(resumeBtn),线程恢复运行,文字继续显示。当线程执行完毕后,恢复开始按钮的状态为可用。程序运行界面如下图所示:

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.BevelBorder; public class RunnableDemo extends JFrame implements Runnable,ActionListener { private static final long serialVersionUID = 1L; // 动画显示的文本字符串 private String introduction = \现在大家已经对计算机很熟悉了,如今计算机的操作\ + \系统可以同时执行多个任务,在听歌的同时能够打字、下载文件,在聊天窗口打\ + \字的时候,对方同时还能通过视频看到你;听到你。这一切都是使用多任务实现\ + \的,Java语言使用多线程实现一个程序中的多个任务同时运行。程序员可以在程\ + \序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机\ + \制被称为多线程。\; JTextArea textArea; // 文本域组件 JLabel label; Thread thread; JButton startBtn,pauseBtn,resumeBtn; boolean allow=false; public RunnableDemo() { setTitle(\线程的控制\); label = new JLabel(\多线程简介:\); // 标签组件 getContentPane().add(label, BorderLayout.NORTH);// 添加标签到窗体 textArea = new JTextArea(\); // 初始化文本域组件 textArea.setBorder(new BevelBorder(BevelBorder.LOWERED));// 设置边框 textArea.setLineWrap(true); // 设置自动折行


实验五 多线程程序设计(汽院含答案)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:stm32移植rt-thread

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: