Java计算器:基础实现与未来改进
Java计算器程序是一个简单的基础实现,其核心功能尚不完整,但已经具备了基本的界面元素。该程序使用了Java Swing库来构建用户界面,包括一个菜单栏(JMenuBar)和两个面板(JPanel),分别是结果显示区域(resultTextField)和文本输入区域(jtext)。以下是程序的关键知识点: 1. **类定义与布局**: - `calculator` 类定义了一个静态的 `WIDTH` 和 `HEIGHT` 布局常量,用于设置窗口大小。 - 使用 `GridLayout` (网格布局) 对布局进行管理,将窗口分为两行一列,便于显示和操作。 2. **文本处理**: - `StringBuffer str` 和 `copystring` 用于存储计算过程中的数字和结果字符串。 - `JTextField resultTextField` 用于显示计算结果,通过 `setHorizontalAlignment(JTextField.RIGHT)` 方法使其右对齐。 - `JTextArea jtext` 提供了一个可编辑的文本区域,可能用于历史记录或者显示复杂的表达式。 3. **事件处理**: - 由于提到的功能还未完全,这部分代码可能包含事件监听器,但没有在提供的部分展示。这通常涉及到按钮(如数字键、运算符键等)的点击事件,用于更新文本框或执行相应的计算操作。 4. **初始化与菜单栏**: - 创建 `JFrame calculatorframe`,设置了窗口的基本属性,如关闭操作、大小和位置。 - 定义了 `JMenuBar menubar1`,虽然没有展示具体菜单项,但这是设计计算器时通常包含的操作选项,如文件、查看、帮助等。 5. **面板划分**: - 将窗口划分为 `textPanel` 和 `numberPanel` 两个面板,分别放置结果显示和数字输入区域。 6. **程序启动**: - 在 `calculator` 类的构造函数中完成了窗口的创建、布局设置和菜单栏关联,以及初始文本的初始化。 虽然提供的代码片段展示了程序的基础框架,但要实现一个完整的计算器功能,还需要添加更多的逻辑,比如处理键盘输入、解析和执行数学运算、处理用户输入的整数和浮点数、支持基本的算术运算符(加减乘除、括号处理等)、以及可能的错误处理。这些部分未在给定的代码中体现,因此需要根据实际需求进一步开发和完善。
import java.awt.event.*;
import javax.swing.*;
import java.util.Stack;
public class calculator {
static final int WIDTH = 320;
static final int HEIGHT = 528;
//标记输入的数字是否是第一个
private static boolean firstDigit = true;
StringBuffer str = new StringBuffer();
StringBuffer copystring = new StringBuffer();//剪贴板
public calculator()
{
//菜单的加载
JFrame calculatorframe = new JFrame ("计算器");
calculatorframe.setSize(WIDTH, HEIGHT);
calculatorframe.setResizable(false);
calculatorframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
calculatorframe.setLocation(500, 200);
GridLayout grid = new GridLayout(2,1);
calculatorframe.setLayout(grid);
JMenuBar menubar1 = new JMenuBar();
calculatorframe.setJMenuBar(menubar1);
//工具条
final JTextField resultTextField = new JTextField("0",24);//结果菜单显示
resultTextField.setHorizontalAlignment(JTextField.RIGHT);//数字在右方显示
final JTextArea jtext = new JTextArea(10,25);//过程文本框
JPanel textPanel = new JPanel();
calculatorframe.add(textPanel);
calculatorframe.add(numberPanel);
textPanel.add(resultTextField);
textPanel.add(jtext);
resultTextField.setEditable(false);
jtext.setEditable(false);
JMenu menuView = new JMenu("文件");
JMenu menuEid = new JMenu("编辑");
JMenu menuHelp = new JMenu("帮助");
menubar1.add(menuView);
menubar1.add(menuEid);
menubar1.add(menuHelp);
JMenuItem viewitem1 = new JMenuItem("标准型");
JMenuItem viewitem2 = new JMenuItem("科学型");
JMenuItem viewitem3 = new JMenuItem("程序员");
JMenuItem viewitem4 = new JMenuItem("统计信息");
JMenuItem viewitem5 = new JMenuItem("历史记录");
JMenuItem viewitem6 = new JMenuItem("数字分组");
JMenuItem viewitem7 = new JMenuItem("基本");
JMenuItem viewitem8 = new JMenuItem("单位转换");
JMenuItem viewitem9 = new JMenuItem("日期计算");
JMenu workspace = new JMenu("工作表");
JMenuItem workitem1 = new JMenuItem("抵押");
JMenuItem workitem2 = new JMenuItem("汽车租赁");
JMenuItem workitem3 = new JMenuItem("油耗(mpg)");
JMenuItem workitem4 = new JMenuItem("油耗(1/100KM)");
剩余32页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现