1 / 19

第 11 章 Java Applet

第 11 章 Java Applet. 小应用程序. Java 小应用程序( Java Applet )继承 Applet 或 JApplet 类。. 独立应用程序 的概念. 独立应用程序 (Java Application) 是指从一个 Java 类的 main() 方法开始运行的程序。在这种运行模式中, Java 类的 .class 文件和 Java 虚拟机进程位于同一个台机器上. 小应用程序的概念.

levana
Download Presentation

第 11 章 Java Applet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 Java Applet

  2. 小应用程序 Java小应用程序(Java Applet)继承Applet或JApplet类。

  3. 独立应用程序的概念 独立应用程序(Java Application)是指从一个Java类的main()方法开始运行的程序。在这种运行模式中,Java类的.class文件和Java虚拟机进程位于同一个台机器上

  4. 小应用程序的概念 • JApplet以及它的父类Applet与其他Java类的最大区别在于,它们可以在浏览器中运行。当浏览器访问Web服务器中的一个嵌入了Applet的网页时,这个Applet的.class文件会从Web服务器端下载到浏览器端,浏览器启动一个Java虚拟机来运行Applet。

  5. Applet的书写格式 小应用程序的书写格式: import java.applet.*; public class MyApplet extends Applet{ … ; } 或 import javax.swing.*; public class MyJApplet extends JApplet{ … ; } 每个小应用都有一个主程序类,之前必须加上public。

  6. Applet的常用方法 • 代表了Applet生命周期的主要活动内容的方法: init (),start(),stop(),destory() • 代表了Applet访问环境资源的方法 getDocumentBase(), getCodeBase() getImage(URL base, String target),getParameter()

  7. Applet的运行控制 • Applet的生命周期 初始态 第一次装入,构造applet类,调用init()方法 调用start()方法 运行态 重新装入或改变页面大小或返回Web页面,调用start()方法 离开web页面:极小化或装入其他页面,调用stop()方法 停止态 关闭浏览器,调用destroy()方法 消亡态

  8. Applet运行控制示例 public class SimpleApplet extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); } public void destroy() { addItem("preparing for unloading(destroy)..."); } void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); g.drawString(buffer.toString(), 5, 15); } } SimpleApplet.java

  9. Applet的运行 • Applet通常运行于一个Web浏览器中 • JDK附带有一个专为查看Applet而设计的工具appletviewer。它的运行命令为: Appletviewer [-debug] [-J<Javaflag>] [-encoding <character encoding type>] url |File 例如: 先进入SimpleApplet.html所在目录,再运行命令 appletviewer SimpleApplet.html

  10. Applet举例 public class MyApplet extends Applet implements Runnable { String word; int fontSize; Thread changer; public void init() { word=getParameter("word"); fontSize=8; setSize(100,100); } public void start(){ changer=new Thread(this); changer.start(); } public void stop(){ changer.stop(); } public void paint(Graphics g) { g.setFont(new Font("newFont",Font.BOLD,fontSize)); g.drawString(word,30,80); } public void run(){ while(true){ fontSize+=4; repaint(); //The word will be redrawed with new fontSize try{ Thread.sleep(1000); }catch(Exception e){} if(fontSize>40) fontSize=8; } }//run() } 见MyApplet.java

  11. HTML中的Applet标记 • 以IE浏览器为例,IE浏览器支持JDK1.0版本中的Applet,只要在网页中加入一个<applet>标记就能嵌入一个Applet. • 浏览器一遇到这个标记,就会下载相应的 Applet类文件,并启动Java虚拟机运行这个Applet。 <html> <applet code=MyApplet.class width=100 height=100> <param name=word value=hi> </applet> </html> 演示MyApplet.html

  12. HTME中Applet标记的使用 < APPLET [ARCHIVE = archiveList ] [CODEBASE = codebaseURL] //表示要下载运行的小程序所在包的基路径,小程序中可用getCodeBase()方法获得该标记的值(可选标记) CODE = appletFile //小程序的包名.文件名 [ALT = alternateText] [NAME = appletInstanceName] WIDTH = pixels HEIGHT = pixels//小程序运行的窗口大小 [ALIGN = alignment] [VSPACE = pixels] [HSPACE = pixels] > [< PARAM NAME = appletParameter1 VALUE = value >] [< PARAM NAME = appletParameter2 VALUE = value >] //传入小程序的参数名和值,在小程序中可用getParameter(String name)获得名为name的参数值 . . . [alternateHTML] </APPLET> • HTML的标记和值不区分大小写

  13. HTML文件中的Param标记 HTML文件中的Apple标记内的param标记用于向applet程序传递参数。 <html> <applet code=A.class width=100 height=100> <param name=Word value=hi> //与main()方法中的参数arg类似 <param name=longWord value=”hi all”> </applet> </html> • 以下是Applet的init方法: init(){ String s1=getParameter(“none”); //s1=null String s2=getParameter(“word”); //s2=“hi”,对参数名大小写不敏感 String s3=getParameter(“WORD”); //s3=“hi” System.out.println(s2==s3); //true String s4=getParameter(“longWord”); // s4=”hi all” }

  14. 读取HTML文件中的参数 • A.java文件的部分定义: package mypackage; public class A extends Applet{…;} • A.java文件编译时指定的基路径为D:\classes • 在路径D:下创建A.html文件如下 <html> <applet codebase=classes code=mypackage.A.class width=100 height=100> </applet> </html> 演示MyApplet1.html

  15. 将Applet加载到独立应用程序中 Applet是Panel的子类,可以把Applet放到JFrame中,然后通过独立应用程序显示。 public static void main( String args[] ) { JFrame f = new JFrame("Applet-App"); AppletApp app = new AppletApp(); f.add(app); f.setSize(200, 200); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); app.init(); app.start(); } public class AppletApp extends Applet { public String s; public void init() { s = new String(“Hello World!”); } public void paint(Graphics g) { g.drawString(s,25,25); } } AppletApp.java

  16. JApplet与Applet的区别 不能直接向JApplet中加入组件,而必须首先获得它的内容面板,然后向内容面板中加入组件,内容面板默认的布局管理器为BorderLayout: Container contentPane=getContentPane(); contentPane.setBackground(Color.WHITE); contentPane.add(contrlButton, BorderLayout.NORTH);

  17. JApplet举例 public class MyJApplet extends JApplet implements Runnable { String word; int fontSize; Thread changer; public void init() { word=getParameter("word"); fontSize=8; setSize(100,100); } public void start(){ changer=new Thread(this); changer.start(); } public void stop(){ changer.stop(); } public void paint(Graphics g) { super.paint(g); g.setFont(new Font("newFont",Font.BOLD,fontSize)); g.drawString(word,30,80); } public void run(){ while(true){ fontSize+=4; repaint(); //The word will be redrawed with new fontSize try{ Thread.sleep(1000); }catch(Exception e){} if(fontSize>40) fontSize=8; } }//run() }

  18. 在HTML中加入JApplet • IE浏览器无法运行Java2中的JApplet,在这种情况下,可以把JApplet作为一种插件来运行。在IE浏览器中,插件的标记为<object>,在Netscape浏览器中,插件的标记为<embed >。当浏览器遇到插件标记,就会启动相应的插件运行程序,通过该程序来运行特定的插件。 • JApplet作为一种插件时,它的插件运行程序为JRE程序(Java Runtime Enviroment,Java运行时环境)。 该程序的下载网址为: http://java.sun.com/j2se/1.5.0/download.jsp。 JRE程序的名字为: jre-1_5_0_06-windows-i586-p.exe。

  19. 在HTML中加入JApplet <object codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5-windows-i586.cab#Version=1,5,0,0" WIDTH = 100 HEIGHT = 100 > <PARAM NAME = CODE VALUE =classes/MyJApplet.class > //表示MyJApplet.java文件中有package classes语句 <param name = "type" value = "application/x-java-applet;version=1.5"> <param name = "scriptable" value = "false"> <param name = “Word" value = "hi"> </object> //如果运行该HTML文件的机器上没有安装JRE,则从codebase指示的网页上下载 演示MyJApplet.html

More Related