实验六 常用系统类
【开发语言及实现平台或实验环境】 Windows2000 或 XP,JDK1.6 与 Jcreator4.0 【实验目的】 1. 了解Java
常用的系统类,包括Java Applet、字符串类、输入输出流类、数学函数类、 日期类、随机数类以及向量类等的基本使用方法。 2. 理解Java 系统类的构成。 【实验要求】 1. 进一步了解Applet 类。 2. 掌握字符串类的使用方法。 3. 掌握数学函数类的使用方法。 4. 掌握日期类的使用方法。 5. 掌握向量类的使用方法 【实验内容】
(一)了解Applet 的生命周期
程序运行从开始大结束的过程称为程序的生命周期。独立应用程序的生命周期从main ()方法开始,直到运行结束。而Applet 应用程序的生命周期与浏览器相关。作为浏览器 的一部分,Applet 程序何时运行,何时结束都由浏览器控制,Applet 对象只是作为浏览器 窗口中运行的一个线程。浏览器与Applet 具有如下关系。 在浏览器中打开包含Applet 对象的页面时,创建并初始化其中的Applet 对象。 显示Applet 时,启动Applet 线程运行。 不显示Applet 时,停止 Applet 线程运行。 在浏览器中关闭页面窗口时,销毁Applet 对象。 与此相应,Applet 类中声明了与生命周期相关的4 个方法:init()、start()、 stop()、destroy()。4 个方法代表Applet 的4 个活动阶段。 1.创建揭示Applet 生命周期的程序LX5_1.java。 (1) 程序功能: 本程序包含Applet 的4 个与生命周期相关的方法init () start 、 () 、 stop 、 () destroy 。 () 程序中创建了自定义方法addWords 来显示相应的字符串。 () addWords 方法首先在标准输出即屏幕上显示字符串参数,然后将字符串添加到字符串缓冲区buffer, 通过调用repaint 方法重画页面,首先自动调用updata 方法将当前画面清空,然后再调用 paint 方法在指定位置显示字符串。 (2)编写LX5_1.java 程序文件,源代码如下。 import java.applet.Applet; import java.awt.Graphics; public class LX5_1 extends Applet { StringBuffer buffer=new StringBuffer(); public void init() { addWords("执行了初始化方法 init()..."); } public void start() { addWords("执行了开始方法start()...");
} public void stop() { addWords("执行了停止方法stop()..."); } public void destroy() { addWords("执行了清除方法destroy()..."); } void addWords(String s) { System.out.println(s); buffer.append(s); repaint(); } public void paint(Graphics g) { g.drawString(buffer.toString(),5,15); } } 2.编译LX5_1.java 文件。 3.编写显示LX5_1.class 的页面文件LX5_1.html,代码如下。
4.在命令提示符窗口调用小程序查看器浏览LX5_1.html 页面观察Applet 应用程序, 其结果 如图5.1 所示。
在图5.2 所示的命令提示符窗口可以看到,在打开LX5_1.html 时,出现了 如图5.1 所示的情况,表示执行了初始化方法和开始方法。当关闭LX5_1.html 时,在命令 提示符窗口可以看到如图5.2 所示执行停止和销毁方法。
图5.1
5.程序分析:本程序不仅揭示了与生命周期相关的4 个方法,还揭示了Applet 显示和刷新 的3个方法:paint()、repaint()和updata()方法。Applet 的显示和刷新由一个独立 线程控制,称为AWT 线程。AWT 线程的处理机制有两种情况。 (1)自动执行paint 方法重新绘图 如果程序中重写paint()方法,当浏览器运行时,AWT 线程将自动在Applet 上绘制图 形;或者Applet 内容被覆盖,当其他窗口关闭或移开时,AWT 线程会自动调用paint 方法, 重画曾被覆盖的部分。 (2)调用repaint 方法重新绘图 程序中如果需要重新绘图, 可以调用repaint 方法,AWT 线程会自动调用updata 方法首 先清空当前页面,然后调用paint 方法重新绘制