《java小應用程序(Applet)和java應用程序(Application)分別編寫的簡單計算器》


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頁面增加了按鈕等功能,從而增加了交互性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM