計算器的實現——基礎篇(一)

計算器的實現——基礎篇(一)

    看了一段時間的java基礎書了,想動手實踐一個小的項目,於是便拿計算器來練手。思路大體上是這樣的,先完成基本功能,後續再做進一步的完善。

  首先得先實現計算器的界面,這兒是採用Java的AWT實現的,選用的IDE是Eclipse,當然,你也可以選擇其他的IDE。
 AWT的相關理論知識
  AWT即抽象窗口工具包(Abstract Window Toolkit),是Java APIJava程序提供的建立圖形用戶界面的基本工具集,AWT可用於Java ApplicationJava Applet的圖形用戶界面的創建。 
  AWT類層次結構圖如下:
   
    組件(Component)
  組件是絕大多數AWT組件(如:按鈕、文本框、複選框等)的父類, 是個抽象類。
  容器(Container)
  容器也是組件,它最主要的作用是裝載其它組件,以實現圖形界面上的佈局。有兩種類型的容器:Window和Panel。從上圖可知,Window也有兩個子類:Frame和Dialog;Panel有一個子類:Applet。
  Panel不能單獨存在,只能存在於其他容器(Window或其子類)中;一個Panel對象代表了一個長方形的區域,在這
區域中可以容納其他組件。
  佈局管理器
  java.awt包提供了FlowLayout、GridLayout、BorderLayout、CardLayout和GridBagLayout等5種佈局方式,類似於Android的線性佈局、相對佈局等方式;這兒主要用到了兩種佈局:GridLayout和BorderLayout。
  BorderLayout把容器分爲5個區域:東、西、南、北和中;而GridLayout將容器分割成若干個行與列,組件被填充到每個網格中。
  
   設計需求
   擬設計一個初步的計算器版本,僅包括數字1~9,小數點.,+,-,*,/和=,另外,還有個文本顯示框,用於顯示結果。
    
  設計思路
   首先是佈局,顯然將數字1~9,小數點.,+,-,*,/和=採用GridLayout佈局方式較好,4行4列;另外,考慮到文本顯示框在界面的最上方,是個上下的格式,所以,計算器整體上採用BorderLayout佈局方式;
   其次,文本框對應的類是Label,各個按鍵對應的類是Button;
   最後,考慮採用數組的形式存儲數字1~9,小數點.,+,-,*,/和=。

 代碼實現
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Calculator {
	private String [] names = {"7","8","9","+","4","5","6",
			"-","1","2","3","*","0",".","=","/"};
	private Button[] button = new Button[16];
	private Label label;
	private Panel panel;
	private Frame frame;
	
	public Calculator() {
		frame = new Frame("Calculator");
		label = new Label();
		panel = new Panel();
		panel.setLayout(new GridLayout(4,4));	//4行4列
		
		for( int i = 0; i < 16; i++ ){
			button[i] = new Button(names[i]);
			panel.add(button[i]);
		}
		
		frame.add(label,"North");	//填放label
		frame.add(panel,"Center");	//填放panel
		frame.pack();
		//點擊關閉圖標時,結束程序
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt){
				System.exit(0);
			}
		});
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		new Calculator();
	}
}
     實現效果
     
    
   參考資料
    1.《Java面向對象編程》孫衛琴老師 著
    2. 百度文庫《AWT工具集簡介》PPT

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章