物件導向程式設計

 

 

第六章、設計Java Applet

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/java

E-mail : pierre@isu.edu.tw   

 


6.2 Applet原理

Applet是:

  • 一個獨立的小程式
  • 可以在 web browser中執行的程式
  • java.applet.Applet的子類別

其繼承結構為:

java.lang.Object
   |
   +----java.awt.Component
           |
           +----java.awt.Container
                   |
                   +----java.awt.Panel
                           |
                           +----java.applet.Applet

 

Applet範例

import java.applet.*;    
import java.awt.*;
 
public class SizeApplet extends Applet 
{
        public void paint(Graphics g) 
        {
                Dimension appletSize = this.getSize();
                int appletHeight = appletSize.height;
                int appletWidth = appletSize.width; 
                g.drawString("這個  Applet 高度為 " + appletHeight + 
                                " pixels ,寬度為" + appletWidth , 
                                15, appletHeight/2);
        }
}
 

Applet的參數傳遞

 
import java.applet.*;    
import java.awt.*; 
             
public class DrawStringApplet extends Applet 
{
        public void paint(Graphics g) 
        {
            String inputFromPage = this.getParameter("Message");
            g.drawString(inputFromPage, 50, 25); 
        }
} 

HTML範例檔:

<HTML>
<HEAD>
<TITLE> 輸出文字 </TITLE>
</HEAD>
 
<BODY>
這是一個applet:<P>
<APPLET code="DrawStringApplet.class" width="300" height="50">
<PARAM name="Message" value="世界和平,你好!">
測試Applet參數傳遞
</APPLET>
</BODY>
</HTML> 
 

Applet生命週期

 

  1. 瀏覽器讀入 HTML 網頁,並發現 <APPLET> tags
  2. 瀏覽器解析 <APPLET> tag ,找到 CODE 和其它參數。
  3. 瀏覽器 downloads applet 所在的 *.class 檔案。
  4. 瀏覽器啟動Java虛擬機器(JVM)執行 Java class物件。
  5. 瀏覽器呼叫 applet的成員函式 init()
  6. 瀏覽器呼叫 applet的成員函式 start()
  7. applet執行中,所有發生在applet上的事件(mouse clicks, key presses),都會觸發 applet  handleEvent()成員函式
  8. 瀏覽器呼叫 applet的成員函式stop()
  9. 瀏覽器呼叫 applet的成員函式destroy()

 

Applet可以做甚麼?

 

Applet基本功能:

  • 所有console 模式的Java運算功能
  • 顯示文字和畫圖
  • 視窗的圖形互動介面
  • 撥放聲音和視訊
  • 回應鍵盤和滑鼠的訊息
  • 網路連線,可以傳送和接收server的資料

 

物件導向程式設計

義守大學電機系 陳慶瀚

2001.11.15