Java: 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()");
}
}


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程序则不允许执行这些操作。

写后话:我觉得写的很肤浅。例子很简单,无吸引人处。可能才开始吧,但愿能渐入佳境。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值