ITPub博客

首页 > 应用开发 > Java > Java 2 图形设计卷II——第2章 applet和应用程序 (转)

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

原创 Java 作者:amyz 时间:2007-11-16 17:35:58 0 删除 编辑
Java 2 图形设计卷II——第2章 applet和应用程序 (转)[@more@]

 学习笔记之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




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程序则不允许执行这些操作。
写后话:我觉得写的很肤浅。例子很简单,无吸引人处。可能才开始吧,但愿能渐入佳境。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-982737/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3984
  • 访问量
    7338889