站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题Java 2 图形设计卷II——第2章 applet和应用程序

Java 2 图形设计卷II——第2章 applet和应用程序

摘要: Java 2 图形设计卷II——第2章 applet和应用程序

学习笔记之Java 2 图形设计卷II——第2章 applet和应用程序 1.APPLET:运行在支持Java的Web浏览器内的JAVA小程序。 浏览器将对Web页进行初始化和启动applet程序;当我们不需要显示该Web页时, 浏览器将启动相应的方法终止applet程序的运行。 1.1由下面四个方法来控制APPLET的运行: (1)init()  打开带有applet的文档时,调用init()方法初始化applet (2)start()  打开带有applet的文档时,在init()方法之后调用start()方法,启动applet (3)stop()  关闭带有applet的文档时调用。注意:stop()总在destroy()方法之前被调用 (4)destroy()  关闭浏览器时调用。调用destroy()是为了整理曾经使用的资源 一个简单的applet例子://StarterApplet.java import java.applet.Applet; import java.awt.Label; public class StarterApplet extends Applet { private Label label; public void init() { System.out.println("Applet::init()"); } public void start() { System.out.println("Applet::start()"); label = new Label("Starter"); add(label); } public void stop() { System.out.println("Applet::stop()"); remove(label); } public void destroy() { System.out.println("Applet::destroy()"); } } file://随便一个HTML文件如001.html,加入 Sample Applet <body> </body> file://命令行下输入:appletviewer 001.html,看到了吧,当然也可以用浏览器看。再强调一遍stop()总在destroy()方法之前被调用! 1.2要更新java.awt.Component的显示方式用下面三个方法: paint()   绘制构件 repaint()  尽可能早地调度构件的update方法调用 update()   重画构件,默认方案为刷新屏幕并调用paint方法 2.Java应用程序:在Java解释器中运行 与APPLET的区别: (1)Java应用程序必须有main()方法 (2)Java应用程序需要有一个窗口,则它必须扩展AWT的Frame类 (3)Java应用程序没有与applet相同的安全性约束 一个简单的应用程序例子://StarterApplication.java import java.awt.Event; import java.awt.Frame; import java.awt.event.*; import java.awt.Label; public class StarterApplication extends Frame {
public static void main(String args[]) { StarterApplication app =new StarterApplication("Starter Application"); app.setSize(300,100); app.show (); System.out.println("StarterApplication::main()"); }
public StarterApplication(String frameTitle) { super(frameTitle); add (new Label("Starter", Label.CENTER), "Center");//默认的布局管理器为BorderLayout addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { dispose(); System.exit(0); } }); } } 3.既是APPLET又是应用程序:既有main方法又extends Applet。//StarterCombined.java import java.applet.Applet; import java.awt.Event; import java.awt.Frame; import java.awt.Label; import java.awt.event.*; public class StarterCombined extends Applet { private Label label; public static void main(String args[]) { StarterCombinedFrame app =new StarterCombinedFrame("Starter Application"); app.setSize(300,100); app.show (); System.out.println("StarterCombinedFrame::main()"); } public void init() { System.out.println("Applet::init()"); } public void start() { System.out.println("Applet::start()"); label = new Label("Starter"); add(label); } public void stop() { System.out.println("Applet::stop()"); remove(label); } public void destroy() { System.out.println("Applet::destroy()"); } } class StarterCombinedFrame extends Frame { public StarterCombinedFrame(String frameTitle) { super(frameTitle); StarterCombined applet = new StarterCombined(); applet.start(); add (applet, "Center"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { dispose(); System.exit(0); } }); } } 由DOS中打印的文字看到:如果程序作为一个applet程序运行,那么main()方法将被忽略。 小结?applet程序和应用程序都由Java解释器运行。应用程序在运行时必须建立自己的框架, 而applet程序则是在支持Java的浏览器或appletviewer提供的框架内运行。 因此,应用程序必须处理窗口关闭事件,而applet的运行则同浏览器或appletviewer控制。 应用程序可自由地读写文件,而不可靠的applet程序则不允许执行这些操作。 写后话:我觉得写的很肤浅。例子很简单,无吸引人处。可能才开始吧,但愿能渐入佳境。
↑返回目录
前一篇: Java 3D图形API
后一篇: Java 2 企业版 与.NET(Jim Farley的个人看法)