一 概述
1. 课程设计的目的
实现计算器的基本功能。使之能实现基本的加、减、乘、除、开方、倒数
等基本运算,同时具有存储数据的功能,能存储相关数据便于下步运算。
2. 课程设计的要求
需要对 Java 图形用户界面中的 Swing 组件中的各种组件类的用法有一定得
掌握,需要熟练地使用几种常见的布局管理器。同时,需要对整个计算器的功
能模块有比较清新的设计思路,需要熟练地掌握 Java 的事件处理机制。
3. 课程设计的主要设计思想
参照 Windows 附件中的计算器,运用 Swing 包中的各种组件对整个计算器
进行布局。对于各种运算的实现,用两个短整型变量分别保存当前进行何种运
算和前一步进行何种运算,用两个 double 型变量保存运算中数据的中间值和最
终结果,然后通过触发不同的按钮事件,调用相应的事件处理方法进行处理,
最后将得到的结果显示在文本区域。此外,对于该计算器中与系统时间同步的
时钟,用一个线程来实现。调用 Thread 类中的方法 run()方法,让此线程休眠
1000 毫秒(即 1 秒)后重新调用 run()方法,刷新显示系统时间,这样通过不断
的刷新来与系统同步。
二 总体方案设计
实现计算器的基本功能,使之能实现基本的加、减、乘、除、开方、倒数
等基本运算,同时具有存储数据的功能,能存储相关数据便于下步运算。同时
附带一个与系统时间同步的时钟。
界面的布局:对于整个界面采用 BorderLayout 布局管理器进行整体布局,
用六个 JPanel 面板来填充整个界面,然后分别在各个面板内添加相应的组件,
如文本区域,按钮等。针对各个面板,分别选取合适的布局管理器对里面的组
件进行布局。
算法的设计:为每个按钮注册事件监听器,并对按钮被按下这一事件提供
相应的事件处理方法。如果是数据按钮被按下,则将按钮所代表的数据插入到
文本框字符串后;如果是运算符按钮被按下,则用 switch 语句对前一步的运算
操作进行判断,然后进行相应的运算;其他按钮的事件处理这里不再赘述。
时钟的添加:对于该计算器中与系统时间同步的时钟,用一个线程来实现。