Java 2 圖形設計卷II——第2章 applet和應用程式 (轉)

amyz發表於2007-11-16
Java 2 圖形設計卷II——第2章 applet和應用程式 (轉)[@more@]

 學習筆記之 2 圖形設計卷II——第2章 applet和應用
1.APPLET:執行在支援Java的內的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()");
}
}
便一個HTML如001.html,加入

Sample Applet




令行下輸入: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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章