Application和Java Applet的區別。
Java語言是一種半編譯半解釋的語言。Java的用戶程序分為兩類:Java Application和Java Applet。
這兩類程序在組成結構和執行機制上都有一定的差異,主要體現在以下幾方面:
(1)運行方式不同。Java Application是完整的程序,可以獨立運行;Java Applet程序不能單獨運行,
它必須嵌入到用HTML語言編寫的Web頁面中,通過與Java兼容的瀏覽器來控制執行。
(2)運行工具不同。Java Application程序被編譯以后,用普通的Java解釋器就可以使其邊解釋邊執行,
而Java Applet必須通過網絡瀏覽器或者Applet觀察器才能執行。
(3)程序結構不同。每個Java Application程序必定含有一個並且只有一個main方法,程序執行時
首先尋找main方法,並以此為入口點開始運行。含有main方法的那個類,常被稱為主類,也就是說
Java Application程序都含有一個主類。而Applet程序則沒有含main方法的主類,這也正是Applet程序不能獨立運行的原因。
盡管Applet沒有含main方法的主類,但Applet一定有一個從 java.applet.Applet派生的類,它是由Java系統提供的。
(4)受到的限制不同Java Application程序可以設計成能進行各種操作的程序,包括讀/寫文件的操作
但是 Java Applet 對站點的磁盤文件既不能進行讀操作,也不能進行寫 操作。然而,由於Applet的引入
使Web頁面具有動態多媒體效果和可交互性能,這使由名為超文本、實為純文本的HTML語言編寫成的Web頁面真正具有了超文本功能
不但可以顯示文本信息,而且還可以有各種圖片效果和動態圖形效果,從而使頁面顯得生動美麗;另外,Applet使Web頁面增加了按鈕等功能,從而增加了交互性。
1 //用Java小應用程序(Applet)編寫一個簡單的計算器。(Java語言程序設計教程 第二版 第173頁 習題) 2 3 import java.applet.Applet; 4 import java.awt.TextField; 5 import java.awt.Checkbox; 6 import java.awt.CheckboxGroup; 7 import java.awt.Button; 8 import java.awt.event.ItemEvent; 9 import java.awt.event.ActionEvent; 10 import java.awt.event.ActionListener; 11 import java.awt.event.ItemListener; 12 13 public class Test1 extends Applet implements ActionListener,ItemListener 14 { 15 int n = 0; 16 TextField tf1 = new TextField(5); 17 Checkbox[] c = new Checkbox[4]; 18 CheckboxGroup cg = new CheckboxGroup(); 19 TextField tf2 = new TextField(5); 20 Button bt = new Button("等於"); 21 TextField tf3 = new TextField(10); 22 String[] str = {"+","-","*","/"}; 23 24 public void init(){ 25 this.add(tf1); 26 for(int i=0;i<str.length;i++){ 27 c[i] = new Checkbox(str[i],false,cg); 28 this.add(c[i]); 29 } 30 this.add(tf2); 31 this.add(bt); 32 this.add(tf3); 33 tf3.setEditable(false); 34 35 bt.addActionListener(this); 36 for(int i=0;i<str.length;i++){ 37 c[i].addItemListener(this); 38 } 39 } 40 41 public void itemStateChanged(ItemEvent e){ 42 String s = (String)e.getItem(); 43 for(int i=0;i<str.length;i++){ 44 if(s == str[i]){ 45 n = i; 46 } 47 } 48 } 49 public void actionPerformed(ActionEvent e){ 50 if(e.getSource() == bt){ 51 switch(n){ 52 case 0: 53 tf3.setText((Double.parseDouble(tf1.getText())) + (Double.parseDouble(tf2.getText()))+""); 54 break; 55 case 1: 56 tf3.setText((Double.parseDouble(tf1.getText()))-(Double.parseDouble(tf2.getText()))+""); 57 break; 58 case 2: 59 tf3.setText((Double.parseDouble(tf1.getText()))*(Double.parseDouble(tf2.getText()))+""); 60 break; 61 case 3: 62 tf3.setText((Double.parseDouble(tf1.getText()))/(Double.parseDouble(tf2.getText()))+""); 63 break; 64 } 65 } 66 } 67 } 68 69 //<applet code = Test1.class width = 400 height = 100></applet>

1 //用Java應用程序(Application)編寫一個簡單的計算器。(Java語言程序設計教程 第二版 第173頁 習題) 2 //這個應用程序還可以添加菜單,以后慢慢添加完善. 3 package myclass; 4 5 import java.awt.Frame; 6 import java.awt.TextField; 7 import java.awt.Checkbox; 8 import java.awt.CheckboxGroup; 9 import java.awt.Button; 10 import java.awt.event.ActionListener; 11 import java.awt.event.ActionEvent; 12 import java.awt.event.ItemListener; 13 import java.awt.event.ItemEvent; 14 import java.awt.event.WindowAdapter; 15 import java.awt.event.WindowEvent; 16 import java.awt.FlowLayout; 17 18 public class Test2 19 { 20 int n = 0;//定義一個全局變量。 21 private Frame f; 22 private TextField tf1; 23 private Checkbox[] c; 24 private CheckboxGroup cg; 25 private TextField tf2; 26 private Button bt; 27 private TextField tf3; 28 String[] str = {"+","-","*","/"}; 29 30 public Test2(){ 31 init(); 32 addEvents(); 33 } 34 35 public void init(){ 36 f = new Frame("計算器"); 37 f.setLayout(new FlowLayout()); 38 //f.setBounds(600,100,400,200); 39 tf1 = new TextField(5); 40 f.add(tf1); 41 c = new Checkbox[4]; 42 for(int i=0;i<str.length;i++){ 43 c[i] = new Checkbox(str[i],false,cg); 44 f.add(c[i]); 45 } 46 tf2 = new TextField(5); 47 f.add(tf2); 48 bt = new Button("等於"); 49 f.add(bt); 50 tf3 = new TextField(10); 51 f.add(tf3); 52 tf3.setEditable(false); 53 f.pack(); 54 f.setVisible(true); 55 } 56 57 public void addEvents(){ 58 59 f.addWindowListener(new WindowAdapter(){ 60 public void windowClosing(WindowEvent e){ 61 System.exit(0); 62 } 63 }); 64 65 66 //為復選框組件添加事件監聽器. 67 for(int i=0;i<str.length;i++){ 68 c[i].addItemListener(new ItemListener(){ 69 public void itemStateChanged(ItemEvent e){ 70 String st = (String)e.getItem(); 71 for(int i=0;i<str.length;i++){ 72 if(st == str[i]) 73 n = i; 74 } 75 } 76 }); 77 } 78 79 //為按鈕天劍事件監聽器. 80 bt.addActionListener(new ActionListener(){ 81 public void actionPerformed(ActionEvent e){ 82 if(e.getSource() == bt){ 83 switch(n){ 84 case 0: 85 tf3.setText((Double.parseDouble(tf1.getText())) + (Double.parseDouble(tf2.getText())) + ""); 86 break; 87 case 1: 88 tf3.setText((Double.parseDouble(tf1.getText()))-(Double.parseDouble(tf2.getText()))+""); 89 break; 90 case 2: 91 tf3.setText((Double.parseDouble(tf1.getText()))*(Double.parseDouble(tf2.getText()))+""); 92 break; 93 case 3: 94 tf3.setText((Double.parseDouble(tf1.getText()))/(Double.parseDouble(tf2.getText()))+""); 95 break; 96 } 97 } 98 } 99 }); 100 } 101 public static void main(String[] args) 102 { 103 new Test2(); 104 } 105 }

Application和Java Applet的區別。
Java語言是一種半編譯半解釋的語言。Java的用戶程序分為兩類:Java Application和Java Applet。
這兩類程序在組成結構和執行機制上都有一定的差異,主要體現在以下幾方面:
(1)運行方式不同。Java Application是完整的程序,可以獨立運行;Java Applet程序不能單獨運行,
它必須嵌入到用HTML語言編寫的Web頁面中,通過與Java兼容的瀏覽器來控制執行。
(2)運行工具不同。Java Application程序被編譯以后,用普通的Java解釋器就可以使其邊解釋邊執行,
而Java Applet必須通過網絡瀏覽器或者Applet觀察器才能執行。
(3)程序結構不同。每個Java Application程序必定含有一個並且只有一個main方法,程序執行時
首先尋找main方法,並以此為入口點開始運行。含有main方法的那個類,常被稱為主類,也就是說
Java Application程序都含有一個主類。而Applet程序則沒有含main方法的主類,這也正是Applet程序不能獨立運行的原因。
盡管Applet沒有含main方法的主類,但Applet一定有一個從 java.applet.Applet派生的類,它是由Java系統提供的。
(4)受到的限制不同Java Application程序可以設計成能進行各種操作的程序,包括讀/寫文件的操作
但是 Java Applet 對站點的磁盤文件既不能進行讀操作,也不能進行寫 操作。然而,由於Applet的引入
使Web頁面具有動態多媒體效果和可交互性能,這使由名為超文本、實為純文本的HTML語言編寫成的Web頁面真正具有了超文本功能
不但可以顯示文本信息,而且還可以有各種圖片效果和動態圖形效果,從而使頁面顯得生動美麗;另外,Applet使Web頁面增加了按鈕等功能,從而增加了交互性。
