applet以及多线程

上传人:san****019 文档编号:70865603 上传时间:2019-01-18 格式:PPT 页数:19 大小:427.31KB
返回 下载 相关 举报
applet以及多线程_第1页
第1页 / 共19页
applet以及多线程_第2页
第2页 / 共19页
applet以及多线程_第3页
第3页 / 共19页
applet以及多线程_第4页
第4页 / 共19页
applet以及多线程_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《applet以及多线程》由会员分享,可在线阅读,更多相关《applet以及多线程(19页珍藏版)》请在金锄头文库上搜索。

1、2019/1/18,Applet 及多线程,1,第9讲 applet及多线程,主要内容 applet及其应用 Applet概述 JApplet类 applet的生命周期 HTML文档与Applet AppletContext接口 Applet应用示例 线程(Thread)处理 本讲小结,2019/1/18,Applet 及多线程,2,Applet 及其应用(概述),applet是 在浏览器内运行的java程序 applet的功能要比HTML、XML以及脚本技术的任意组合强大的多 跨平台 安全性 不能访问任何本地文件 不能访问源站点以外的网络资源 通过数字签名验证可以做更多事情 applet必须

2、是Applet或JApplet的派生子类 Applet及JApplet是容器类。,2019/1/18,Applet 及多线程,3,JApplet类,JApplet类是Applet的扩充子类, 构造方法 JApplet() 常用方法 public AppletContext getAppletContext() 返回applet的接口对象. public AudioClip getAudioClip(URL url,String name) 返回音频对象. public URL getCodeBase() 返回包含applet目录的基URL对象。 public Container getCont

3、entPane() 返回applet的contentPane 对象. public Component getGlassPane() 返回此applet的glassPane对象 public URL getDocumentBase() 返回嵌入Applet文档的URL。 public Image getImage(URL url) 返回由URL指定的Image对象 。 public String getParameter(String name) 返回HTML标记中的参数值. public void play(URL url) 播放由url指定的音频剪辑。 public void paint(

4、Graphics g) 绘制容器及组件。 public void init() applet初始化。 public void start() applet开始运行。 public void stop() 停止运行applet。 public void destroy() 关闭applet。,2019/1/18,Applet 及多线程,4,applet的生命周期,init(),start(),stop(),destroy(),用户第一次打开Web页,当applet得到焦点,当用户关闭Web页或退出浏览器,当applet失去焦点,调用init()后,示例实现,绘制容器界面paint(),2019/

5、1/18,Applet 及多线程,5,HTML文档与Applet,在将applet嵌入HTML文档时,需要在文档中设置APPLET标记,以指示浏览器装载并运行它。其标记的一般语法如下: CODE 项指定applet类代码文件名; CODEBASE 项指定包含applet目录的URL; ARCHIVE 项用于指定applet运行中所需要的类代码所在的JAR文件; HEIGHT和WIDTH 项指定applet窗口的高度和宽度, 单位为像素。 APPLET标记也可以换成OBJECT标记。 APPLET标记内可包含PARAM标记,用来向applet传递所需的输入参数。NAME项指定参数名; VALUE

6、项指定参数值.,示例实现,2019/1/18,Applet 及多线程,6,AppletContext接口,使用该接口可获得applet的环境信息.常用的方法如下: AudioClip getAudioClip(URL url) 获得音频剪辑对象. Image getImage(URL url) 获得可以在屏幕上绘制的图像. Applet getApplet(String name) 获得名称为name的applet. void showDocument(URL url) 在当前窗口显示url指定的Web 页面。 void showDocument(URL url,String target)

7、在target指定的窗口位置显示url指定的页面。target的取值及意义如下: “_self“ 在包含applet的框架窗口中显示。 “_parent“ 在applet的父框架中显示。 “_top“ 在applet窗口的顶层框架中显示。 “_blank“ 在一个新的、未命名的顶层窗口中显示。 name 在名称为name的框架或窗口中显示。 void showStatus(String status) 在状态行显示信息status.,2019/1/18,Applet 及多线程,7,Applet应用示例 (例1),在applet上绘制字符串和由图像文件指定的图像. 由HTML文档传递要绘制的字符

8、串和图像文件名; 在applet的init() 方法中完成对象的创建及获取: 使用getParameter()获取文档传递的字符串和文件名; 使用getDocumentBase() 获取图像文件所在的地址; 使用getImage() 获取要绘制的图像对象。 重写paint()方法,完成对象的绘制: 使用图形对象的drawString()方法在指定的位置绘制字符串; 使用图形对象的drawImage()方法在指定的位置绘制图像。,程序示例实现,2019/1/18,Applet 及多线程,8,例2,在applet上设置一个“打开另一个文档”按钮,当单击该按钮时,在一个新的窗口显示另一个文档. 该a

9、pplet应实现ActionListeren接口; 在HTML文档中传递要显示的文档名; 使用applet对象的getCodeBase()方法获得文档的URL ; 使用applet对象的getParameter( )方法获得要显示文档的名称; 使用AppletContext接口对象的showDocument( ) 方法显示另一个文档。,示例程序的实现,2019/1/18,Applet 及多线程,9,例3,在applet中播放音频文件,可以从列表中选择要播放的音频文件,单击“开始” 时播放、“暂停” 时停止、“继续” 时继续播放。 该applet应实现ActionListeren、ItemLis

10、tener接口; 可以在HTML文档中传递要播放的文档名; 使用applet对象的getCodeBase()方法获得文件的URL ;列表对象的getItem()方法获得文件名; 使用applet对象的getAudioClip()方法获得AudioClip对象; 使用AudioClip对象的play()、stop()、loop()方法 播放、停止或继续播放音频。,示例程序的实现,2019/1/18,Applet 及多线程,10,线程处理,程序是一段静态的代码.它是应用程序执行的蓝本 进程是程序的一次动态执行,它对应了从代码加载、执行至执行完毕的一个完整过程 线程是进程执行过程中产生的多条执行线索

11、,线程是比进程更小的执行单位 线程与进程的区别: 每个进程的内部数据和状态都是完全独立的;而多线程是共享一块内存空间和一组系统资源,有可能互相影响. 线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。,2019/1/18,Applet 及多线程,11,线程概念,线程的优势 对涉及面较多交互频繁的处理,写程序比较容易; 程序的吞吐量会得到改善,提高了程序的效率. 由多个处理器的系统,可以并发运行不同的线程. (否则,任何时刻只有一个线程在运行) 在编写程序时,不必关心到底使用了多少个处理器、系统如何分配处理器的时间,而将每个线程都想象成独立运行,

12、而且都有自己专用的处理器。 Java中实现多线程的途径 使用Thread类对象 实现Runnable接口,2019/1/18,Applet 及多线程,12,多线程实现(Thread类),构造方法 Thread() Thread(Runnable target) Thread(Runnable target, String name) Thread(String name) Thread(ThreadGroup group, Runnable target) Thread(ThreadGroup group, Runnable target, String name) Thread(Thread

13、Group group, Runnable target, String name, long stackSize) 其中:name 指定新建线程对象的名称(若没有给出,将自动以如下形式命名: “Thread-”+n,n为整数序号); Group 为线程组; stackSize 为堆栈大小。,2019/1/18,Applet 及多线程,13,Thread类,常量 MIN_PRIORITY 其值为1,表示最小优先级。 MAX_PRIORITY 其值为10,表示最高优先级。 NORM_PRIORITY 其值为5;表示普通优先级。 常用方法 public void start() 启动线程。 pub

14、lic void run() 这是一个系统自动调用的方法。 public static void sleep(long millis) 设置线程休眠millis毫秒。 public final void join(long millis) 等待该线程的消失,millis为等待时间。 public void interrupt() 中断当前线程的运行。 public static void yield() 暂停当前正在执行的线程,并执行其他线程。 public statiac int activeCount() 获取在当前线程组中活动线程的数量。,2019/1/18,Applet 及多线程,14

15、,Thread类常用方法及Runnable接口,public staticThread currentThread() 获取当前活动的线程对象. public ThreadGroup getThreadGruop() 获取当前线程所属的线程组。 public void setDaemon(boolean on) 设置线程为守护线程(后台运行)。 public void setPriority(int newPriority) 设置线程执行的优先级别。 Runnable接口 public void run(),2019/1/18,Applet 及多线程,15,应用示例,例1 在程序中创建3个线程

16、,观察一下各线程的反应情况。 从上边程序中,我们应该注意以下两点: 线程的优先级 在多线程程序中,线程的调度执行是按照其优先级的高低顺序进行的,同优先级的线程平分所获得的处理器时间。对于个新建线程,系统会遵循如下的原则为其指定优先级: 它将继承创建它的父线程的优先级。 般情况下,主线程具有普通优先级。 可以通过线程对象的setPriority()方法来修改线程的优先级. 守护线程 所谓守护线程就是在后台运行的线程。我们可以使用线程对象的setDaemon()方法将线程设置为守护线程。守护线程从属于创建它的线程,当创建它的线程消失时,守护线程也就消失了。,示例实现,修改上例的线程优先级观察结果,2019/1/18,Applet 及多线程,16,示例,例2 设计如下图的用户操作界面,这是一个录入学生成绩速度的测试程序,当单击“开始”按钮时,测试开始,每隔一分钟显示到计时时间,输入一个学生的信息后,单击“下一个”按钮,开始下一个学生信息的录入,测试时间用完后,显示输入了多少个学生的信息.,基本思想: 实现ActionListener接口,完成按钮事件功能 实现Runna

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号