计算器的实现——基础篇(一)

来源:互联网 发布:人工智能 招聘 深圳 编辑:程序博客网 时间:2024/05/19 00:08

计算器的实现——基础篇(一)

    看了一段时间的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");//填放labelframe.add(panel,"Center");//填放panelframe.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

0 0