Java第九章PPT教学课件
TextField text; public Exam5_19() {
super(“我的菜单窗口”); setSize(300, 200); } public void init() { MenuBar myB = new MenuBar(); setMenuBar(myB); Menu m1 = new Menu(“文件”); m1.add(new MenuItem(“打开”)); MenuItem m11 = new MenuItem(“保存”); m11.setEnabled(false); m1.add(m11); m1.addSeparator(); m1.add(“退出”); m1.addActionListener(this); myB.add(m1);
Menu m3 = new Menu(“帮助”); m3.add(“关于”); m3.addActionListener(this);
myB.setHelpMenu(m3);
text = new TextField();
add(“South”, text);
2020/1}2/10
6
使用菜单组件的例子
2020/12/10
2
//(c)通过Action对象新建“New”菜单项,并添加事件监听器。 newItem = (new ShowAction("New")); //(c)通过指定菜单项对象新建“Paste”菜单项。 pasteItem = new JMenuItem("Paste", 'P'); //(d)将菜单项加入到子菜单或菜单中,将子菜单加入到菜单中,将菜单加 入到菜单栏中。 (newItem); editMenu.add(pasteItem); viewMenu.add(optionMenu); menuBar.add(); menuBar.add(editMenu); menuBar.add(viewMenu);
m2.addSeparator(); CheckboxMenuItem mycmi = new CheckboxMenuItem(“全选”); mycmi.addItemListener(this);
m2.add(mycmi);
m2.addActionListener(this);
myB.add(m2);
2020/12/10
7
❖ 菜单项的使用状态 菜单项能够被选取取决于菜单项的启用和禁用状态:
//初始设置“Save”菜单项为禁用状态。 saveItem.setEnabled(false);
❖ 快捷键和加速器 快捷键显示为带有下划线的字母,加速器则显示为菜单项
旁边的组合键。:
//设置菜单的快捷键。 ('F'); //设置“Exit”菜单项的快捷键为“T”。 JMenuItem exitItem = new JMenuItem("Exit", 'T'); //设置“Exit”菜单项的加速器为“Ctrl+T”。 exitItem.setAccelerator(KeyStroke.getKeyStroke(
setJMenuBar(menuBar); //(b)创建“File”菜单、“Edit”菜单和“View”菜单。 JMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu viewMenu = new JMenu("View"); //(b)创建子菜单。 JMenu optionMenu = new JMenu("Option");
2020/12/10
5
使用菜单组件的例子
); m2.add(“复制”); Menu m21 = new Menu(“颜色”); m21.add(“前景色”); m21.add(“背景色”); m21.addActionListener(this);
m2.add(m21);
2020/12/10
3
菜单组件
• java.awt.MenuBar类
– MenuBar() – setMenuBar(菜单对象)
• java.awt.Menu类 • java.awt.MenuItem类 • java.awt.CheckboxMenuItem类 • java.awt.PopupMenu类
MenuComponent
MenuBar
MenuItem
2020/12/10
CheckboxMenuItem
Menu PopupMenu 4
使用菜单组件的例子
import java.awt.*; import java.awt.event.*; public class Exam5_19 extends Frame implements ActionListener, ItemListener {
KeyEvent.VK_T, InputEvent.CTRL_MASK));
2020/12/10
7.4.8菜单以及弹出式菜单
典型的菜单:
2020/12/10
1
❖ 创建菜单 四个步骤:创建菜单栏、创建菜单以及子菜单、创建菜单
项,并将菜单项加入到子菜单或菜单中,将子菜单加入到菜单 中,将菜单加入到菜单栏中。
//(a)创建菜单栏,并将菜单栏加入到框架中。 JMenuBar menuBar = new JMenuBar();
text.setText(“状态改变”); } public void actionPerformed(ActionEvent e) {
text.setText(e.getActionCommand()); if (e.getActionCommand() == “退出”)
System.exit(0); } }
public static void main(String args[]) { Exam5_19 myMenu = new Exam5_19(); myMenu.init(); myMenu.setVisible(true);
} public void itemStateChanged(ItemEvent e) {
super(“我的菜单窗口”); setSize(300, 200); } public void init() { MenuBar myB = new MenuBar(); setMenuBar(myB); Menu m1 = new Menu(“文件”); m1.add(new MenuItem(“打开”)); MenuItem m11 = new MenuItem(“保存”); m11.setEnabled(false); m1.add(m11); m1.addSeparator(); m1.add(“退出”); m1.addActionListener(this); myB.add(m1);
Menu m3 = new Menu(“帮助”); m3.add(“关于”); m3.addActionListener(this);
myB.setHelpMenu(m3);
text = new TextField();
add(“South”, text);
2020/1}2/10
6
使用菜单组件的例子
2020/12/10
2
//(c)通过Action对象新建“New”菜单项,并添加事件监听器。 newItem = (new ShowAction("New")); //(c)通过指定菜单项对象新建“Paste”菜单项。 pasteItem = new JMenuItem("Paste", 'P'); //(d)将菜单项加入到子菜单或菜单中,将子菜单加入到菜单中,将菜单加 入到菜单栏中。 (newItem); editMenu.add(pasteItem); viewMenu.add(optionMenu); menuBar.add(); menuBar.add(editMenu); menuBar.add(viewMenu);
m2.addSeparator(); CheckboxMenuItem mycmi = new CheckboxMenuItem(“全选”); mycmi.addItemListener(this);
m2.add(mycmi);
m2.addActionListener(this);
myB.add(m2);
2020/12/10
7
❖ 菜单项的使用状态 菜单项能够被选取取决于菜单项的启用和禁用状态:
//初始设置“Save”菜单项为禁用状态。 saveItem.setEnabled(false);
❖ 快捷键和加速器 快捷键显示为带有下划线的字母,加速器则显示为菜单项
旁边的组合键。:
//设置菜单的快捷键。 ('F'); //设置“Exit”菜单项的快捷键为“T”。 JMenuItem exitItem = new JMenuItem("Exit", 'T'); //设置“Exit”菜单项的加速器为“Ctrl+T”。 exitItem.setAccelerator(KeyStroke.getKeyStroke(
setJMenuBar(menuBar); //(b)创建“File”菜单、“Edit”菜单和“View”菜单。 JMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu viewMenu = new JMenu("View"); //(b)创建子菜单。 JMenu optionMenu = new JMenu("Option");
2020/12/10
5
使用菜单组件的例子
); m2.add(“复制”); Menu m21 = new Menu(“颜色”); m21.add(“前景色”); m21.add(“背景色”); m21.addActionListener(this);
m2.add(m21);
2020/12/10
3
菜单组件
• java.awt.MenuBar类
– MenuBar() – setMenuBar(菜单对象)
• java.awt.Menu类 • java.awt.MenuItem类 • java.awt.CheckboxMenuItem类 • java.awt.PopupMenu类
MenuComponent
MenuBar
MenuItem
2020/12/10
CheckboxMenuItem
Menu PopupMenu 4
使用菜单组件的例子
import java.awt.*; import java.awt.event.*; public class Exam5_19 extends Frame implements ActionListener, ItemListener {
KeyEvent.VK_T, InputEvent.CTRL_MASK));
2020/12/10
7.4.8菜单以及弹出式菜单
典型的菜单:
2020/12/10
1
❖ 创建菜单 四个步骤:创建菜单栏、创建菜单以及子菜单、创建菜单
项,并将菜单项加入到子菜单或菜单中,将子菜单加入到菜单 中,将菜单加入到菜单栏中。
//(a)创建菜单栏,并将菜单栏加入到框架中。 JMenuBar menuBar = new JMenuBar();
text.setText(“状态改变”); } public void actionPerformed(ActionEvent e) {
text.setText(e.getActionCommand()); if (e.getActionCommand() == “退出”)
System.exit(0); } }
public static void main(String args[]) { Exam5_19 myMenu = new Exam5_19(); myMenu.init(); myMenu.setVisible(true);
} public void itemStateChanged(ItemEvent e) {
合集下载
java课件第9章91异常处理.ppt
第 16 页
结束
当catch前面的try块中发生了一个异常,try-catch语句就会自动在try 块后面的各个catch块中,找出与该异常类相匹配的参数。当参数符合以 下三个条件之一时,就认为这个参数与产生的异常相匹配:
(1) 参数与产生的异常属于一个类; (2) 参数是产生的异常的父类; (3) 参数是一个接口时,产生的异常实现了这一接口。
带throws异常说明的方法说明形式如下: … 方法名(…) throws 异常类列表 { 方法体 }
第7页
结束
方法抛出的异常类是throws子句中指定的异常类或其子类。 比如在方法的说明中指明方法可能产生IOException, 但是实 际上可能抛出的异常或许是EOFException类的实例,这些异 常都是IOException的子类。
第6页
结束
9.1.2 抛出异常
Java提供了两种不同的异常抛出机制: throws抛出异常——间接抛出异常 throw 抛出异常——直接抛出异常
1. throws 抛出异常
throws异常说明总是和方法说明出现在一起。这样,方法说明 告诉编译器该方法可能会产生哪些异常,从而要求它的调用者必 须考虑处理这些异常。
static String getInput() throws IOException
// getInput()方法抛出异常,因为在它的方法体中调用的 //read方法抛出异常,并且该方法体本身使用throw抛出异常
{ char [] buffer = new char[20]; int counter = 0; boolean flag = true; while(flag) { buffer[counter] = (char)System.in.read();
JAVA第9章 输入输出课件
9.2.5 小文件的读写
• Files类提供了从一个较小的二进制文件和文 本文件读取和写入的方法。readAllBytes() 方法和readAllLines()方法分别是从二进制 文件和文本文件读取。这些方法可以自动打 开和关闭流,但不能处理大文件。
9.2.5 小文件的读写
• public static byte[] readAllBytes(Path path):从指定的二进制文件中读取所有字 节。
9.2 Files类操作
• java.nio.类是一个功能非常强大的类。 • 该类定义了大量的静态方法用来读、写和
操纵文件和目录。Files类主要操作Path对 象。
9.2.1 创建和删除目录和文件
• public static Path createDirectory(Path dir, <?>…attrs)
= ();
1. 类
• Path getPath(String first, String …more) • String getSeparator() • Iterable<Path> getRootDirectores() • boolean isOpen() • boolean isReadOnly()
• static Path setOwner(Path path, UserPrincipal) :设置指定文件的所有者。
9.2.2 文件属性操作
• 下面程序演示了Files类几个方法的使用。 • 程序9.1
R u n
9.2.3 文件和目录的复制与移动
• 使用Files类的copy()方法可以复制文件和 目录,使用move()方法可以移动目录和文 件。copy()方法的一般格式为: public static Path copy( Path source, Path target, CopyOption…options)
Java课件第九章
因为同一个三角形上的所有点必处于同一个平面上,所以 所有点的法向相同,这样就可取其中一点作为代表(通常取其 重心点)。根据视点、光源、物体的颜色等已知的条件及物体 的材质,采用前述的公式计算出该点的辉度值,并以此作为整 个三角形面素的辉度值。 在计算三角形面素辉度值时,要计算三角形面素的重心坐标、 法线矢量、视线矢量和光源方向矢量。其计算方法与前述的完 全一样。
栅图形显示器的RGB三基色系统。这样,phong模型可表示成:
1 R1 R R1 G G cosn 1 G 1 1 1 B1 B B1 R0 R1 G d (1 d ) cos G 0 1 B0 B1
第九章 真实感图形生成技术
本章重点
1.了解真实感图形绘制的基本原理。
2.了解并掌握简单光照模型的组成及应用。
3.了解并掌握绘制真实感图形时常用的多边 形明暗处理的方法。
难点:1.如何使用简单光照模型? 2.如何绘制真实感图形?
9.1 引言
真实感图形的绘制是计算机图形学的一个重要组成部分, 它综合利用了数学、物理学、计算机科学和其它科学知识,在
i=1 3
p3
其中 j=
i+1 (i≠3) 1 (i=3)
p1
ny=∑(zi-zj)(xi+xj)
i=1
3
nz=∑(xi-xj)(yi+yj)
i=1
3
2.视线方向矢量 对于一个小三角形面片而言,前面已得到了它的法线矢量
N,如果我们从面片外的一个视点处 E 观察该面片,那么面片
上的任一点与E连接就是该点处的视线方向。 设三角形的重心坐标为G(gx,gy,gz) 则 ∑ xi gx=
栅图形显示器的RGB三基色系统。这样,phong模型可表示成:
1 R1 R R1 G G cosn 1 G 1 1 1 B1 B B1 R0 R1 G d (1 d ) cos G 0 1 B0 B1
第九章 真实感图形生成技术
本章重点
1.了解真实感图形绘制的基本原理。
2.了解并掌握简单光照模型的组成及应用。
3.了解并掌握绘制真实感图形时常用的多边 形明暗处理的方法。
难点:1.如何使用简单光照模型? 2.如何绘制真实感图形?
9.1 引言
真实感图形的绘制是计算机图形学的一个重要组成部分, 它综合利用了数学、物理学、计算机科学和其它科学知识,在
i=1 3
p3
其中 j=
i+1 (i≠3) 1 (i=3)
p1
ny=∑(zi-zj)(xi+xj)
i=1
3
nz=∑(xi-xj)(yi+yj)
i=1
3
2.视线方向矢量 对于一个小三角形面片而言,前面已得到了它的法线矢量
N,如果我们从面片外的一个视点处 E 观察该面片,那么面片
上的任一点与E连接就是该点处的视线方向。 设三角形的重心坐标为G(gx,gy,gz) 则 ∑ xi gx=
Java第9章.ppt
▪ 生命周期 ▪ 常用方法
11
1 小程序的生命周期
▪ 小程序的生命周期:是指一个applet程序从被下 载起,到被系统回收所经历的过程。
初始
离开页面
运行
暂停
再次访问页面
消亡
12
2 与生命周期相关的方法
▪ init( )方法
当Applet对象被创建并初次装入浏览器时,init( ) 方法会被自动调用,通常用于完成数据的初始化 操作。
保持一致
}
必须包含
一个方法
4
3 小程序举例 ( 程序9-1 ):
import java.awt.Graphics; // 装入类库 import java.applet.Applet; public class HelloWorld extends Applet {
String hw_text; public void init( ){hw_text= “Hello Java !”;} public void paint (Graphics g ) {
www服务器
请求
HTML 文件
下载
HTML 文件
HTML 文件 嵌入
Applet
www服务器
请求 Applet 字节码
www浏览器
下载Applet字节码
解释执行Applet字节码
7
5 Applet的安全机制
▪ 对系统安全性的限定尺度通常是在浏览器中设 定的。
▪ 都禁止Applet程序的下述行为 运行过程中调用执行另一个程序 所有文件I/O操作 调用本机(native)方法 企图打开提供该Applet的主机以外的某个套 接口(socket)
8
Applet的安全机制图示
11
1 小程序的生命周期
▪ 小程序的生命周期:是指一个applet程序从被下 载起,到被系统回收所经历的过程。
初始
离开页面
运行
暂停
再次访问页面
消亡
12
2 与生命周期相关的方法
▪ init( )方法
当Applet对象被创建并初次装入浏览器时,init( ) 方法会被自动调用,通常用于完成数据的初始化 操作。
保持一致
}
必须包含
一个方法
4
3 小程序举例 ( 程序9-1 ):
import java.awt.Graphics; // 装入类库 import java.applet.Applet; public class HelloWorld extends Applet {
String hw_text; public void init( ){hw_text= “Hello Java !”;} public void paint (Graphics g ) {
www服务器
请求
HTML 文件
下载
HTML 文件
HTML 文件 嵌入
Applet
www服务器
请求 Applet 字节码
www浏览器
下载Applet字节码
解释执行Applet字节码
7
5 Applet的安全机制
▪ 对系统安全性的限定尺度通常是在浏览器中设 定的。
▪ 都禁止Applet程序的下述行为 运行过程中调用执行另一个程序 所有文件I/O操作 调用本机(native)方法 企图打开提供该Applet的主机以外的某个套 接口(socket)
8
Applet的安全机制图示
java第九章课件
13
9.3 线程的创建
线程从根本上讲是一段程序代码序列,还 需要在程序中实现。 Java语言支持多线程,线程在Application 程序和Applet程序中都可以使用,在Applet 中使用得更普遍一些。 Java语言程序中实现线程的程序设计的关 键是使主程序获得run()方法并重写run()方 法。 根据获得run()方法的途径不同,有两种方 式获得Thread的实例。
17
notifyAll() //唤醒在此对象监视器上等待的所有线程 wait() //导致当前的线程等待 wait(long timeout) //导致当前的线程等待timeout毫秒 wait(long timeout, int nanos) //导致当前的线程等待timeout 毫秒加nanos纳秒 isAlive() //测试线程是否处于活动状态 isInterrupted() //测试线程是否已经中断 getPriority() //返回线程的优先级 getId() //返回线程的标识符 getName() //返回线程的名称 getState() //返回线程的状态 setPriority(int newPriority) //更改线程的优先级 setName(String name) //改变线程名称,使之与参数name相同
notify()
notifyall()
等待态 休眠态
wait()
运行态
等待任务
阻塞态 死亡态
sleep()
完成任务或终止
11
线程的优先级
每个线程都有自己的优先级。当 Java线程被创建时,该线程从父线程 中继承优先级并保持一致。线程被创 建后,可以改变线程的优先级。 线程的优先级定义为10级,分别用 数字1到10表示。
9.3 线程的创建
线程从根本上讲是一段程序代码序列,还 需要在程序中实现。 Java语言支持多线程,线程在Application 程序和Applet程序中都可以使用,在Applet 中使用得更普遍一些。 Java语言程序中实现线程的程序设计的关 键是使主程序获得run()方法并重写run()方 法。 根据获得run()方法的途径不同,有两种方 式获得Thread的实例。
17
notifyAll() //唤醒在此对象监视器上等待的所有线程 wait() //导致当前的线程等待 wait(long timeout) //导致当前的线程等待timeout毫秒 wait(long timeout, int nanos) //导致当前的线程等待timeout 毫秒加nanos纳秒 isAlive() //测试线程是否处于活动状态 isInterrupted() //测试线程是否已经中断 getPriority() //返回线程的优先级 getId() //返回线程的标识符 getName() //返回线程的名称 getState() //返回线程的状态 setPriority(int newPriority) //更改线程的优先级 setName(String name) //改变线程名称,使之与参数name相同
notify()
notifyall()
等待态 休眠态
wait()
运行态
等待任务
阻塞态 死亡态
sleep()
完成任务或终止
11
线程的优先级
每个线程都有自己的优先级。当 Java线程被创建时,该线程从父线程 中继承优先级并保持一致。线程被创 建后,可以改变线程的优先级。 线程的优先级定义为10级,分别用 数字1到10表示。
java 课件 第9章
异常类的继承结构
4
Exception子类的继承关系
Exception
ClassNotFoundException ClassNotSupportedException IllegalAccessException InstantiationException InterruptedException NoSuchMethodException RuntimeException ArithmeticException ArrayStoreException ClassCastException IllegalArgumentException
15
例9-2 运行结果
ArithmeticException catched ! Exception message:ng.ArithmeticException: / by zero Finally block. 如果将循环语句中的“y=0”改为“y=3”,那么不会出现异常, try块内的所有语句正常执行,但catch块将不执行,最后跳 转到finally块去执行。重新编译并运行程序,输出结果如下: 5 Computing successfully! Finally block!
第九章
异常处理
1
9.1 Java异常处理机制 异常处理机制 9.2 异常处理方式
2
9.1 异常处理机制
Java使用异常对程序给出一个统一 使用异常对程序给出一个统一 和相对简单的抛出和处理错误的机制。 和相对简单的抛出和处理错误的机制。 如果一个方法本身能抛出异常,调用者 如果一个方法本身能抛出异常, 可以捕获异常使之得到处理; 可以捕获异常使之得到处理;也可以回 避异常,这时异常将在调用的堆栈中向 避异常, 下传递,直到被处理。 下传递,直到被处理。
《Java程序设计案例教程》第09章
public static void main(String[] args) {
❖
//读取E 盘test.txt 中的内容,显示输出
❖
FileInputStream in = null;
❖
int b;
❖
try {
❖
in = new FileInputStream("E:/test.txt");
❖
while ((b = in.read()) != -1) {
▪ 对于这两个read()方法,如果读取文件时发生错误,则会抛出IOException的异常。
Java程序设计案例教程
幻灯片 8,共38页
8
FileOutputStream类
❖ (1)FileOutputStream类的构造方法 ▪ 创建一个指向file文件中写入字节数据的FileOutputStream对象 • public FileOutputStream(File file) throws FileNotFoundException ▪ 创建一个指向File文件中写入字节数据的FileOutputStream对象,且如果第2个参数为true,则将字节数据追加到 文件末尾处,否则将字节数据写入文件开始处覆盖原有的文件 • public FileOutputStream(File file,boolean append) throws FileNotFoundException ▪ 创建一个向具体指定名称为name的文件中写入字节数据的FileOutputStream对象 • public FileOutputStream(String name) throws FileNotFoundException ▪ 创建一个向具体指定名称为name的文件中写入字节数据的FileOutputStream对象,且如果第2个参数为true,则 将字节数据追加到文件末尾处,否则将字节数据写入文件开始处覆盖原有的文件 • public FileOutputStream(String name,boolean append) throws FileNotFoundException
Java语言程序设计课件第9章Java网络编程
• InetAddress 类提供了操作IP地址的各种方法。该类本身没有构造方法,而是通过调 用相关静态方法获取实例。常用方法:
方法名称 boolean equals(Object obj) byte[] getAddress() static InetAddress[] getAHByName(String host)
9.4.1 DATAGRAMPACKET类
• 在TCP/IP协议的传输层除了一个TCP协议之外,还有一个UDP协议。UDP协议是用户 数据报协议的简称,也用于网络数据的传输。虽然UDP协议是一种不太可靠的协议, 但有时在需要较快地接收数据并且可以忍受较小错误的情况下,UDP就会表现出更 大的优势。
9.1 JAVA 网络编程基础知识
• 9.1.1 网络协议 • 9.1.2 套接字和端口
9.1.1 网络协议
• 网络编程的目的就是直接或间接地通过网络协议与其他计算机进行通信。在Java语 言中包含网络编程所需要的各种类,编程人员只需要创建这些类的对象,调用相应 的方法,就可以进行网络应用程序的编写。
9.3.4 传输对象数据
• 经过前面的学习,掌握了如何在服务器开始一个端口监听套接字,以及如何在客户 端连接服务器,发送简单的数字。本次案例将实现如何在客户端发送一个对象到服 务器端,服务器如何解析对象中的数据。
9.4 JAVA UDP通信
• 9.4.1 DatagramPacket类 • 9.4.2 DatagramSocket类
9.3 JAVA TCP通信
• 9.3.1 ServerSocket 类 • 9.3.2 Socket 类 • 9.3.3 客户端与服务器端的简单通信 • 9.3.4 传输对象数据
9.3.1 SERVERSOCKET 类
Java基础第9章课件
让IT教学更简单,让IT学习更有效
– Panel也是一个容器,但是它不能单独存在,只能存在其它容器〔Window或 其子类〕中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容 纳其它组件
第六页,编辑于星期三:点 二十三分。
9.2 AWT事件处理
让IT教学更简单,让IT学习更有效
• 9.2.1 事件处理机制
行处理时,首先需要定义一个类实现WindowListener接口作为窗体监听器, 然后通过addWindowListener()方法将窗体对象与窗体监听器绑定
第十一页,编辑于星期三:点 二十三分。
9.3 常用事件分类
让IT教学更简单,让IT学习更有效
• 9.3.2 鼠标事件
– MouseEvent类用于表示鼠标事件,几乎所有的组件都可以产生鼠标事件
第十四页,编辑于星期三:点 二十三分。
让IT教学更简单,让IT学习更有效
• 9.4.1 FlowLayout • FlowLayout是流式布局管理器,它是最简单的布局管理器。
• 使用FlowLayout布局管理器时,容器会将组件按照添加顺 序表从9-1左中,向列右出放了F置low。La当yo到ut的达三容个构器造的方法边,界其时中,,参会数a自lig动n决将定组组件件在每放 到行下中相一对行于容的器开边界始的位对置齐方。式这,可些以组使件用该可类以中提左供对的常齐量、作居为参中数对传递齐给〔构
让IT教学更简单,让IT学习更有效
– GUI全称是Graphical User Interface,即图形用户界面,即应用程序提供给用 户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素
– GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包 中,简称为AWT和Swing
Java语言程序设计92java第9章(小应用程序)精品PPT课件
初始态(瞬态)
调用start()方法
运行态
离开Web页面:极小 化或装入其他页面, 调用stop()方法
停止态
重新装入或改变页面 大小或返回Web页面, 调用start()方法
关闭浏览器,调用stop()、 destroy()方法
消亡态
软件学院
Hale Waihona Puke 9.3.1 生命周期中各个方法
▪ init()方法:初始化,自动调用,只执行 一次。主要完成一些在Applet构造方法所 不能完成的工作。 ▪start()方法:初始化后,自动调用。是 Applet的主体,在其中可以执行一些任务 或启动相关的线程来执行任务。
}
软件学院
9.2.3 在启动函数中显示图形界面
▪ 小程序中没有main函数,也不从main函数开始 ▪ 小程序有4个函数,在启动与停止时自动调用 ▪ 初始化小程序:
➢ public void init(); 加载小程序时自动调用,完成初始化过程
▪ 执行小程序: ➢ public void start(); ▪ 在初始化以后调用,不需要再次初始化
9.2.5 小程序的编译与运行
▪ 首先,将源程序进行编译,得到二进制文件 ▪ 随后,将二进制文件与HTML文件放在一个
目录下 1. 打开HTML文件时,浏览器会自动调用
Java小程序 2. 命令行 “appletviewer Test. html”,会自
动提取并显示小程序
软件学院
9.3 小程序的生命周期
public void init() { JPanel p = new JPanel(); JLabel lbl = new JLabel("Java小程序测试。"); p.add(lbl); getContentPane().add(p); System.out.println(“init:初始化”);
