第9章 网络多媒体应用_第1页
第9章 网络多媒体应用_第2页
第9章 网络多媒体应用_第3页
第9章 网络多媒体应用_第4页
第9章 网络多媒体应用_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第九章第九章 网网络络多媒体多媒体应应用用 9 1 网网络编络编程基程基础础 URL 编编程和程和 Socket 编编程程 9 1 1 URL 编编程程 URL Uniform Resource Locator 统统一一资资源定位器源定位器 用于表示用于表示 Internet 上上资资源源 的地址的地址 即网即网络络上数据的位置上数据的位置 资资源源为为文件文件 目目录录 对对象的引用象的引用 利用利用 URL 的表示的表示 和建立和建立 Java 程序可直接程序可直接读读入网入网络络上的数据上的数据 或把数据或把数据传传送到网送到网络络的另一端的另一端 J 包定包定义义了了对应对应的的 URL 类类 其常用其常用 4 个构造方法如下个构造方法如下 1 public URL String spec 这这个构造方法用指定的个构造方法用指定的 URL 来来创创建建 URL 对对象象 参参 数数为为 URL 的的 IP 地址和文件地址和文件 如如 try URL u1 new URL catch Malformed URLException e 2 public URL URL context String spec 该该构造方法用已存在的构造方法用已存在的 URL 对对象象 的的 context 创创建建 URL 对对象例如象例如 try URL u2 new URL u1 welcome html catch Malformed URLException e 3 public URL String protocol String host String file 该该构造方法用指定的构造方法用指定的 协议协议 主机名主机名 路路经经及文件名及文件名创创建的建的 URL 对对象例如象例如 try URL u3 new URL http index html catch Malformed URLException e 4 public URL String protocol String host int port String file 该该构造方法用构造方法用 指定的指定的协议协议 主机名主机名 端口号端口号 文件路文件路经经及文件名及文件名创创建的一个建的一个 URL 对对象例如象例如 try URL u3 new URL http 8080 index html catch Malformed URLException e 使用使用 URL 类类的的 openStream 方法可以方法可以连连接和接和获获取取 URL 对对象的内容象的内容 即返回一即返回一 个个输输入流入流对对象象读读 URL 数据数据 方法格式方法格式为为 2 public final InputStream openStream throws IOException URL 类类的常用方法的常用方法 public final Object getContent 取的取的传输协义传输协义 public String getFile 取的取的资资源文件名源文件名 public String getHost 取的主机名取的主机名 public String getPort 取的端口号取的端口号 public String getProtocol 取的取的传输协义传输协义 public String toString 用于把用于把 URL 转转化化为为字符串字符串 例例 URL 编编程程读读取取 yahoo 站点地址的内容站点地址的内容 import java io import class URLReader public static void main String args try 用指定的用指定的 URL 来来创创建建 URL 对对象象 URL tirc new URL 创创建建缓缓冲区冲区输输入流入流 BufferedReader in new BufferedReader new InputStreamReader tirc openStream String s 接收数据的字符串接收数据的字符串变变量量 s while s in readLine null System out println s in close 关关闭闭 BufferedReader 输输入流入流 catch MalformedURLException e 捕捉捕捉 URL 缺陷异常缺陷异常 System out println e 输输出缺陷异常信息出缺陷异常信息 catch IOException e 捕捉捕捉 I O 异常异常 System out println e tirc openStream 用用创创建建 URL 对对象象 tirc 的的 openStream 方法建立到当前方法建立到当前 3 URL 的的连连接并返回一个从接并返回一个从该连该连接地址接地址读读取数据的取数据的输输入流入流对对 象象 InputStreamReader InputStream in 从字从字节节流到字符流的流到字符流的桥桥梁梁 它它读读取字取字节节流流 并并转为转为字符流字符流 in 一个一个输输入流由入流由 tirc openStream 代表代表输输入流入流 并用并用 new 创创建字建字 节节流流转为转为字符流字符流对对象象 BufferedReader Reader in int sz 构造方法参数构造方法参数 in 阅读阅读器器 sz 输输入入缓缓冲区大冲区大 小小 本例本例创创建一个建一个缓缓冲字符冲字符输输入流入流对对象象 用用 in 引用它引用它 输输入入缓缓冲区大小冲区大小为为默默认认 再再 调调用它的用它的读读入行方法将字符流入行方法将字符流赋给赋给 存入存入 变变量量 s 中中 再再输输出字符流出字符流 9 1 2 Socket 编编程程 套接字套接字 Socket 是由伯克利大学首是由伯克利大学首创创的的 它允它允许许程序把网程序把网络连络连接当成一个流接当成一个流 可以可以 在在这这个流中个流中读读取字取字节节 包中定包中定义义的两个的两个类类 Socket Client 端套接字端套接字 和和 ServerSocket Server 端套接字端套接字 分分别别用用 java 的流模型技的流模型技术术来来实现实现客客户户端和服端和服务务 器端或两台器端或两台计计算机之算机之间间的网的网络络通信通信 当套接字当套接字连连接建立后接建立后 也就是一条通信也就是一条通信线线路被路被 建立起来了建立起来了 Socket 通信模型如下通信模型如下图图 4 输入流 客户端 Socket 输出流 输出流 输入流 服务器端 Socket 互相连接 互相连接 套接字能套接字能执执行行 7 种基本操作种基本操作 1 连连接到接到远远程程计计算机算机 2 绑绑定到端口定到端口 3 接收从接收从远远程程计计算机来的算机来的绑绑定端口上的定端口上的连连接接 4 监监听到达的数据听到达的数据 5 发发送数据送数据 6 接收数据接收数据 7 关关闭连闭连接接 客客户户端端 常用套接字常用套接字 Socket 类类构造方法构造方法 1 public Socket String host int port throws unknownHostException IOException 建立一个建立一个 IP 地址代表的服地址代表的服务务器主机器主机 host 端口号端口号为为 port 的套接字的套接字 0 1023 为为通信口通信口 一般用一般用 1024 65535 口口 连连接到服接到服务务器上器上 例如例如 Try Socket soc new Socket 80 发发送数据送数据 http 占用占用 80 口口 catch unknownHostException uex catch IOException e 2 Socket 类类常用方法常用方法 5 1 public InetAddress getInetAddress 调调用用 Socket 对对象的象的 getInetAddress 方法方法 返回返回连连接到接到远远程主机的程主机的 IP 地址地址 如果如果连连接失接失败败 则则返回返回 以前以前连连接的主机接的主机 例如例如 Try Socket soc new Socket 80 InetAddress host soc getInetAddress catch unknownHostException uex catch IOException e 2 public int getPort 返回返回 Socket 连连接到接到远远程主机的端口号程主机的端口号 例如例如 try Socket socket new Socket 80 int port socket getPort catch unknownHostException uex catch IOException e 3 public int getLocalPort 一个一个 Socket 连连接两个接两个终终端端 返回本地返回本地连连接接终终 端的端口号端的端口号 4 public InetAddress getLocalAddress 返回用返回用户户 Socket 绑绑定在网定在网络络 哪个接口地址哪个接口地址 5 public OutputStream getOutputStream throws IOException 返回一返回一 个原始的个原始的输输出流出流 6 public InputStream getInputStream throws IOException 返回一个返回一个 输输入出流入出流 服服务务器端构造方法器端构造方法 1 public ServerSocket int port throws IOException BindException 建建 立一个立一个绑绑定在定在 端口号端口号为为 port 的服的服务务器套接字器套接字对对象象 网网络编络编程程 4 个步个步骤骤 1 创创建建 Socket 2 打开打开连连接到接到 Socket 的的输输入入 输输出流出流 3 按照一定的按照一定的协议对协议对 Socket 进进行行读读写操作写操作 4 关关闭闭 Socket 6 j3 35 java 1 服服务务器端程序器端程序 在在 DOS 下先下先执执行行 import import java io class TestServer public static void main String args try 创创建服建服务务器套接字器套接字对对象 运行在服象 运行在服务务器器 8888 端口上端口上 ServerSocket s new ServerSocket 8888 while true ServerSocket 对对象象调调用用 accept 方法在指定方法在指定 8888 端口上端口上监监听客听客户户端到来的端到来的连连 接 接 这这个端口个端口让让客客户户端程序端程序连连接 接 Socket s1 s accept 监监听器通听器通过过 getOutputStream 方法方法获获得返回一个原始的得返回一个原始的输输出流出流 OutputStream os s1 getOutputStream 包含包含输输出流出流创创建数据建数据输输出字出字节节流流对对象象 DataOutputStream dos new DataOutputStream os 以以 UTF 编码编码格式格式 写出写出 返回返回连连接的接的远远程主机程主机 客客户户端端 的地址的地址 和客和客户户端端发发出出请请 求的端口号求的端口号 1032 dos writeUTF Hello s1 getInetAddress port s1 getPort nbye dos close 关关闭输闭输出字出字节节流流对对象象 s1 close 关关闭闭服服务务器套接字器套接字对对象象 catch IOException e System out println 程序运行出程序运行出错错 e j3 36 java 2 客客户户端程序端程序 使用使用 JCreator 执执行行 import import java io 7 class TestClient public static void main String args try 创创建客建客户户端套接字端套接字对对象象实现实现与本地服与本地服务务器器 IP 地址地址 127 0 0 1 连连接服接服务务器端器端 口口 8888 Socket s1 new Socket 127 0 0 1 8888 套接字套接字对对象通象通过过 getInputStream 方法方法获获得一个得一个输输入流入流读读取服取服务务器放入器放入 线线路路 输输出流出流 的数据的数据 InputStream is s1 getInputStream 包含字包含字节输节输入流入流创创建数据建数据输输入字入字节节流流对对象象 DataInputStream dis new DataInputStream is 数据数据输输入流入流对对象以象以 UTF 编码编码格式格式读读入服入服务务器器发发出的出的输输出流数据并在客出流数据并在客户户端端 显显示示 System out println dis readUTF dis close 关关闭输闭输入字入字节节流流对对象象 s1 close 关关闭闭 Socket catch ConnectException connExc System err println 服服务务器器连连接失接失败败 catch IOException e 例例 11 5 Client java 8 1 客客户户端程序 端程序 import java io import public class Client public static void main String args String s null Socket mysocket DataInputStream in null 声明数据声明数据输输入流入流对对象象 DataOutputStream out null 声明数据声明数据输输出流出流对对象象 try mysocket new Socket 127 0 0 1 4331 声明客声明客户户端套接字端套接字对对象象 连连 接服接服务务器通信端口器通信端口为为 4331 创创建客建客户户端数据端数据输输入流入流对对象象读读取服取服务务器端器端输输出流出流 in new DataInputStream mysocket getInputStream 创创建客建客户户端数据端数据输输出流出流对对象放入服象放入服务务器端器端线线路路输输入流中入流中 out new DataOutputStream mysocket getOutputStream for int k 1 k 100 k k 2 out writeUTF k 向服向服务务器端器端发发送奇数送奇数 s in readUTF in 读读取服取服务务器端器端输输出流出流发发来的信息 堵塞来的信息 堵塞 状状态态 System out println 客客户户收到收到 s 输输出服出服务务器端器端发发来来 的信息的信息 Thread sleep 500 catch Exception e System out println 服服务务器已断开器已断开 e 例例 11 5 Server java 9 2 服服务务器端程序器端程序 import java io import public class Server public static void main String args ServerSocket server null 声明服声明服务务器套接字器套接字对对象象 Socket you null 声明声明连连接客接客户户端端监监听器听器对对象引用象引用变变量量 String s null 声明接收客声明接收客户户端端输输入流数据字符串入流数据字符串 DataOutputStream out null 声明声明输输出流出流对对象象 DataInputStream in null 声明声明输输入流入流对对象象 try server new ServerSocket 4331 创创建服建服务务器套接字器套接字对对象 使用服象 使用服务务 器器 4331 端口端口 catch IOException e1 System out println e1 try System out println 等待客等待客户户呼叫呼叫 you server accept 堵塞状堵塞状态态等待客等待客户户呼叫 除非有客呼叫 除非有客户户呼叫 取呼叫 取 的客的客户户端端连连接 接 out new DataOutputStream you getOutputStream 包含客包含客户户端端 连连接接输输出流出流创创建建输输出流出流对对象象 in new DataInputStream you getInputStream 包含客包含客户户端端连连接接 输输入流入流创创建建输输入流入流对对象象 while true s in readUTF in 读读取客取客户输户输出流放入出流放入 线线路路 里的奇数信息 里的奇数信息 堵塞状堵塞状态态 int m Integer parseInt s 转换为转换为整数整数赋给变赋给变量量 m 10 out writeUTF 你好你好 我是服我是服务务器器 服服务务器端将器端将 2 m 后放入后放入输输出流由客出流由客户户端端输输入流入流读读取取 out writeUTF 你你说说的数是乘的数是乘 2 后是后是 2 m System out println 服服务务器收到器收到 s 服服务务器端器端输输出收到客出收到客户户 端的奇数信息端的奇数信息 Thread sleep 500 catch Exception e System out println 客客户户已断开已断开 e 例例 11 6 1 Client1 java 客客户户端程序 端程序 import import java io import java awt import java awt event import javax swing public class Client1 public static void main String args new ComputerClient 创创建建计计算三角形面算三角形面积积窗口窗口对对象象 定定义义 ComputerClient 子子类继类继承窗口承窗口类类 实现实现 Runnable ActionListener 接口接口 class ComputerClient extends Frame implements Runnable ActionListener Button connection send 声明声明连连接和接和发发送按送按钮对钮对象象 TextField inputText showResult 声明声明 2 个文本框个文本框对对象用来象用来输输入三角入三角 形三形三边长边长和和显显示面示面积结积结果果 Socket socket null 声明客声明客户户端端 Socket 对对象象 DataInputStream in null 声明声明 DataInputStream 对对象象 DataOutputStream out null 声明声明 DataOutputStream 对对象象 Thread thread 声明声明 Thread 对对象象 ComputerClient 构造函数构造函数 socket new Socket 创创建客建客户户端端 Socket 对对象象 setLayout new FlowLayout 设设置窗口置窗口为为流布局流布局 Box box Box createVerticalBox 创创建立式盒式容器建立式盒式容器对对象象 connection new Button 连连接服接服务务器器 创创建建连连接和接和发发送按送按钮对钮对象象 11 send new Button 发发送送 send setEnabled false 设设置置发发送按送按钮对钮对象不可用象不可用 inputText new TextField 12 创创建建 2 个文本框个文本框对对象象 showResult new TextField 12 box add connection 将将连连接按接按钮钮添加到盒式容器中添加到盒式容器中 box add new Label 输输入三角形三入三角形三边边的的长长度度 用逗号或空格分隔用逗号或空格分隔 添加添加标签标签到盒式容器中到盒式容器中 box add inputText 添加添加输输入文本框到盒式容器中入文本框到盒式容器中 box add send 添加添加发发送按送按钮对钮对象到盒式容器中象到盒式容器中 box add new Label 收到的收到的结结果 果 添加添加标签标签到盒式容器中到盒式容器中 box add showResult 添加添加显显示文本框到盒式容器中示文本框到盒式容器中 connection addActionListener this 注册注册连连接和接和发发送按送按钮监钮监听器听器 send addActionListener this thread new Thread this 创创建建线线程程对对象象 add box 添加盒式容器到窗体容器中添加盒式容器到窗体容器中 setBounds 10 30 300 400 设设置窗体在屏幕中的大小和置窗体在屏幕中的大小和显显示位置示位置 setVisible true 设设置置组组件可件可见见 validate addWindowListener new WindowAdapter 包含适配器注册窗包含适配器注册窗 口口监监听器听器 public void windowClosing WindowEvent e System exit 0 public void actionPerformed ActionEvent e if e getSource connection 如果事件源来自如果事件源来自连连接按接按钮钮 try 请请求和服求和服务务器建立套接字器建立套接字连连接 接 if socket isConnected 如果和服如果和服务务器器连连接接为为真就不需建立套真就不需建立套 接字接字连连接接 else 否否则则就和服就和服务务器建立套接字器建立套接字连连接接 InetAddress address InetAddress getByName 127 0 0 1 取得客取得客户户端端 IP 地址地址 创创建建 InetSocketAddress 对对象象 InetSocketAddress socketAddress new InetSocketAddress address 4331 socket connect socketAddress 和服和服务务器建立套接字器建立套接字连连 接接 包含套接字包含套接字输输入流入流对对象象创创建客建客户户端数据端数据输输入流入流对对象象 in new DataInputStream socket getInputStream 包含套接字包含套接字输输出流出流对对象象创创建客建客户户端数据端数据输输出流出流对对象象 out new DataOutputStream socket getOutputStream send setEnabled true 和服和服务务器器连连接成功后接成功后设设置置发发送按送按 钮钮可用可用 thread start 启启动线动线程程调调用用 run 方法运行方法运行线线程体程体 catch IOException ee 12 if e getSource send 如果事件源来自如果事件源来自发发送按送按钮钮 String s inputText getText 取得文本框的内容取得文本框的内容 if s null 如果文本内容不如果文本内容不为为空空 try out writeUTF s 将内容数据写入流送到服将内容数据写入流送到服务务器器 由服由服 务务器器输输入流取得数据入流取得数据 catch IOException e1 public void run 运行运行线线程体程体 String s null while true try s in readUTF 读读服服务务器器输输出流返回的数据出流返回的数据 showResult setText s 读读回的服回的服务务器数据在文本框器数据在文本框 中中显显示出来示出来 catch IOException e showResult setText 与服与服务务器已断开器已断开 break 例例 11 6 2 Server1 java 服服务务器端程序器端程序 import java io import import java util public class Server1 public static void main String args ServerSocket server null Server thread thread Socket you null while true try server new ServerSocket 4331 创创建服建服务务器套接字器套接字对对 象象 catch IOException e1 System out println 正在正在监监听听 ServerSocket 对对象不能象不能 重复重复创创建建 13 try System out println 等待客等待客户户呼叫呼叫 you server accept 接受客接受客户户端的套接字端的套接字连连接呼叫接呼叫 System out println 客客户户的地址的地址 you getInetAddress 取得客取得客户户端端 IP 地址地址 catch IOException e System out println 正在等待客正在等待客户户 if you null 如果如果连连接接请请求求对对象不象不为为空空 new Server thread you start 为为每个客每个客户户启启动动一个一个专门专门 的的线线程程 class Server thread extends Thread Socket socket DataOutputStream out null DataInputStream in null String s null boolean quesion false Server thread Socket t 构造函数构造函数 socket t try 包含套接字包含套接字输输出流出流创创建服建服务务器端数据器端数据输输出流出流对对象象 out new DataOutputStream socket getOutputStream 包含套接字包含套接字输输入流入流创创建服建服务务器端器端输输入流入流对对象象 in new DataInputStream socket getInputStream catch IOException e public void run 运行运行线线程体程体 while true double a new double 3 创创建建 3 个个长长度的度的实实数数数数组组接收客接收客户户 端的端的 3 个个边长边长数据数据 int i 0 try s in readUTF 堵塞状堵塞状态态 除非 除非读读取到信息取到信息 从客从客户户端端输输 出流接收数据出流接收数据 quesion false 先将先将问题标识设为问题标识设为 false 从客从客户户端端读读取的取的 数据格式正确数据格式正确 StringTokenizer fenxi new StringTokenizer s 创创建建 字符分隔解析器字符分隔解析器对对象象 while fenxi hasMoreTokens 还还有逗号分隔符有逗号分隔符时时 String temp fenxi nextToken 取出逗号分隔符取出逗号分隔符 前的字符串前的字符串 将数字字符串将数字字符串转换为转换为双精度数并存入数双精度数并存入数组组 14 try a i Double valueOf temp doubleValue i catch NumberFormatException e 捕捉数据格式捕捉数据格式 输输入不正确异常入不正确异常 out writeUTF 请输请输入数字字符入数字字符 将提示信息将提示信息 送到客送到客户户端端 quesion true 将将问题标识设为问题标识设为 true 表示数据表示数据 格式不正确格式不正确 if quesion false 如果数据格式正确如果数据格式正确 double p a 0 a 1 a 2 2 0 从数从数组组中取的三角形中取的三角形 三个三个边长边长相加除相加除 2 将三角形面将三角形面积为积为数据送到客数据送到客户户端端 out writeUTF Math sqrt p p a 0 p a 1 p a 2 catch IOException e System out println 客客户户离开离开 return 15 例例 10 2 采用采用 TCP Socket 通信通信实现实现的点的点对对点聊天点聊天 1 ChatTCPServer java 服服务务端程序端程序 先运行先运行 import import java io import Chat ChatTCPSocketJFrame public class ChatTCPServer public ChatTCPServer int port String name throws IOException 构造函构造函 数数约约定端口定端口 2001 网名花仙子 网名花仙子 本机本机 IP 地址和指定端口构成服地址和指定端口构成服务务端的端的 Socket ServerSocket server new ServerSocket port 创创建建 ServerSocket 提供提供 TCP 连连接服接服务务 Socket client server accept 等待接收客等待接收客户户端的端的连连接接 申申请请 new ChatTCPSocketJFrame name client 服服务务端的聊天室 端的聊天室 图图形用形用 户户界面同客界面同客户户端端 server close public static void main String args throws IOException new ChatTCPServer 2001 花仙子花仙子 启启动动服服务务端 端 约约定端口定端口 16 2001 指定网名花仙子 指定网名花仙子 2 ChatTCPSocketJFrame java 客客户户端程序及聊天室的端程序及聊天室的图图形用形用户户界面界面 package Chat import java awt event import javax swing import java io import InetAddress import Socket public class ChatTCPSocketJFrame extends JFrame implements ActionListener private String name 网名网名 private Socket socket TCP Socket 对对象象 private JTextArea text receiver 显显示示对话对话内容的文本区内容的文本区 private JTextField text sender 输输入入发发送内容的文本行送内容的文本行 private JButton button send button leave 发发送和离送和离线线按按钮钮 private PrintWriter cout 字符字符输输出流出流对对象象 提供提供图图形用形用户户界面界面 public ChatTCPSocketJFrame String name Socket socket throws IOException 17 super 聊天室聊天室 name InetAddress getLocalHost socket getLocalPort this setBounds 320 240 400 240 this setDefaultCloseOperation EXIT ON CLOSE this text receiver new JTextArea this text receiver setEditable false 文本区不可文本区不可编辑编辑 this getContentPane add new JScrollPane this text receiver JPanel panel new JPanel this getContentPane add panel South this text sender new JTextField 16 panel add this text sender button send new JButton 发发送送 panel add button send button send addActionListener this button leave new JButton 离离线线 panel add button leave button leave addActionListener this this setVisible true this name name this socket socket 获获得客得客户户端端 Socket 对对象的象的输输出流 立即出流 立即 flush this cout new PrintWriter socket getOutputStream true this cout println name 发发送自己网名送自己网名给对给对方方 获获得服得服务务端端 Socket 对对象的象的输输入流 入流 创创建字符建字符输输入流入流 BufferedReader cin new BufferedReader new InputStreamReader socket getInputStream String aline cin readLine 接收到接收到对对方网名方网名 text receiver append 连连接接 aline 成功成功 r n 显显示示对对方方发发 来的内容 来的内容 aline cin readLine 18 while aline null 显显示示对对方方发发来的内容来的内容 aline cin readLine cin close cout close 关关闭输闭输出流出流对对象象 socket close 关关闭闭 Socket 连连接接 button send setEnabled false button leave setEnabled false 客客户户端端 public ChatTCPSocketJFrame String name String host int port throws IOException 客客户户端向指定主机的端口端向指定主机的端口发发出出 TCP 连连接接请请求求 this name new Socket host port public void actionPerformed ActionEvent e if e getSource button send 发发送按送按钮钮 this cout println name 说说 text sender getText 通通过过流流 发发送送给对给对方方 text receiver append 我我说说 text sender getText n text sender setText if e getSource button leave 离离线线 19 text receiver append 我离我离线线 n this cout println name 离离线线 n bye 发发送送给对给对方离方离线约线约定定 button send setEnabled false button leave setEnabled false public static void main String args throws IOException new ChatTCPSocketJFrame 小蜜蜂小蜜蜂 127 0 0 1 2001 创创建客建客户户 端聊天室窗口端聊天室窗口 9 2 Applet 编编程基程基础础 Applet 小程序是从它的初始化小程序是从它的初始化 init 方法作方法作为为程序切入点开始的程序切入点开始的 Applet 小程序小程序 需在需在 HTML Hypertext Markup Language 超文本超文本标记语标记语言言 中中调调用加用加载载它的字它的字 节码节码 class 文件运行文件运行 还还可以在可以在 HTML 中向中向 Applet 传递传递参数参数 Applet 类类是容器是容器 默默认认布局布局为为 FlowLayout Applet 的生命周期 的生命周期 Apple 类类有四种基方法控制其运行状有四种基方法控制其运行状态态 init 方法方法 start 方法方法 stop 方法方法 20 destroy 方法方法 浏览浏览器在器在调调用运行用运行 Applet 时时 将自将自动调动调用用这这四个方法四个方法 一个一个 Applet 的生命周期是由初始化的生命周期是由初始化 开始运行开始运行 停止运行停止运行 撤消清理撤消清理这这四个四个过过程构成程构成 一个一个 Applet 的生命周期与的生命周期与 Web 页页面有关面有关 当首次加当首次加载载含有含有 Applet 的的页页面面时时 浏览浏览器器 调调用用 init 方法完成方法完成 Applet 的初始化的初始化 然后然后调调用用 start 方法或方法或 paint 方法启方法启动动程程 序或序或绘绘制制 Applet 内容面板内容面板 当离开当离开页页面面时时 浏览浏览器器调调用用 stop 方法停止小程序运方法停止小程序运 行行 若关若关闭浏览闭浏览器将使器将使 Applet 停止运行停止运行 浏览浏览器器调调用用 destroy 方法方法终终止并止并释释放小放小 程序所占内存程序所占内存资资源源 只要不关只要不关闭浏览闭浏览器器 重新加重新加载页载页面面 浏览浏览器器则则只只调调用用 paint 方方 法或法或 start 方法重新方法重新绘绘制并运行小程序制并运行小程序 Applet 类类是所有是所有 Applet 应应用的基用的基类类 所有 所有 java 小程序都必小程序都必须继须继承承该类该类 Applet 类类的构造函数只有一种 的构造函数只有一种 public Applet 其常用方法如下 其常用方法如下 public final void setStub Applet Stubstub 设设置置 Applet 的的 stub stub 是是 Java 和和 C 之之间转换间转换参数并返回的代参数并返回的代码为码为 由系 由系统统自自动设动设定 定 public Boolean isActive 判断判断 Applet 是否是否处处于活于活动动状状态态 public URL getDocumentBase 取得嵌入取得嵌入 Applet 程序的程序的 HTML 文件文件 URL public URL getCodeBase 取得取得 Applet class 程序文件的程序文件的 URL public String getParameter 取得取得 Applet 由参数名由参数名 name 指定的参数指定的参数值值 public AppletContext get AppletContext 返回返回浏览浏览器或器或 Applet 运行运行环环境 境 public void resize int width int height 调调整整 Applet 运行的窗口尺寸 运行的窗口尺寸 public void resize Dimension d 调调整整 Applet 运行的窗口尺寸 运行的窗口尺寸 public void showStatus String msg 在在浏览浏览器状器状态栏态栏中中显显示指定信息 示指定信息 public Image getImage URL url 按按 URL 指定的地址装指定的地址装载图载图像 像 21 public Image getImage URL url String name 按按 URL 指定的地址和文件名指定的地址和文件名 加加载图载图像 像 public AudioClipgetAudioClip URL url 按按 URL 指定的地址指定的地址获获取声音文件 取声音文件 public AudioClipgetAudioClip URL url String name 按按 URL 指定的地址指定的地址 和文件名和文件名获获取声音文件 取声音文件 public String getAppletInfo 返回返回 Applet 基本信息 基本信息 public String getParameterInfo 返回描述返回描述 Applet 参数的字符串数参数的字符串数组组 参 参 数名 数名 值值 参数 参数说说明 明 public void play URL url 按按 URL 指定的音指定的音频频剪剪辑辑加加载载并播并播发发 public void destroy 释释放放 Applet 所占所占资资源 源 Applet 在在 HTML web 页页面面 中加中加载载格式 格式 applet code class width 300 height 300 codebase codebaseURL alt alternateText align alignment vspace pixels hspace pixels name appletInstanceName 例例 12 1 Example12 1 java Java applet 运行原理运行原理 22 import java applet import java awt public class Example12 1 extends Applet Button button1 button2 int sum public void init 1 调调用用 init 方法初始化方法初始化 Applet setBackground Col

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论