在Java初级开发中,计算器是一个经典的实践项目,有助于程序员深入理解面向对象编程和用户界面设计。本篇代码提供了一个名为`TestJiSuanQi`的Java类,它继承自`JFrame`,用于创建一个简单的命令行界面计算器。这个计算器应用主要包含以下组件和功能: 1. **类结构与初始化**: - 类`TestJiSuanQi`定义了一个主窗口,通过`JFrame`的子类实现。 - 使用了`JPanel`来组织布局,创建了数组`jb[]`来存储各种按钮(数字、运算符、小数点、清除等)。 - 还有`JTextField`(文本字段)用于显示计算结果。 2. **按钮与事件处理**: - 数字、运算符和特殊功能按钮(如“0”、“.”、“+”、“-”、“/”、“*”、“%”、“1/x”、“=”)都被定义为`Button`对象,并根据数组索引关联到相应的字符串标签。 - 使用`ActionListener`接口,每个按钮的点击事件都会触发相应的计算操作或更新显示。 3. **变量声明**: - 定义了一些布尔型(`flag`)、字符串型(`operand1`、`operand2`、`action`)和双精度型(`result`)变量,用于存储当前操作的状态和结果。 4. **方法和逻辑**: - 构造函数`public TestJiSuanQi()`负责创建并初始化所有按钮和文本框,并将它们添加到`JPanel`中。 - `flag`变量用于标记是否正在执行一个操作,`operand1`和`operand2`分别记录两个操作数,`result`储存计算结果。 - 当用户点击等于号("=")按钮时,程序会检查当前输入是否满足运算条件,然后执行计算并更新显示。 5. **键盘输入与结果显示**: - 用户可以通过数字按钮输入数值,小数点和运算符按钮执行相应的数学操作。`JTextField`中的文本会实时更新,反映当前的计算过程。 6. **界面元素**: - 使用`Font`对象设置了按钮和文本框的字体样式,使得界面看起来更专业。 总结来说,这段Java代码演示了如何构建一个基本的图形用户界面计算器,涉及了事件驱动编程、组件管理、数据存储和显示,以及简单的数学运算处理。这对于Java初学者来说是一个很好的实战项目,能够提升编程能力和理解面向对象编程的核心概念。
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestJiSuanQi extends JFrame {
/**
* @param args
*/
JPanel jp = new JPanel();
String name[] = { "MC", "MR", "MS", "M-", "7", "8", "9", "/", "4", "5",
"6", "*", "1", "2", "3", "―" };
Button jb[] = new Button[name.length];
Button bt0 = new Button("0");
Button bt1 = new Button(".");
Button bt2 = new Button("+");
Button bt3 = new Button("√");
Button bt4 = new Button("%");
Button bt5 = new Button("1/x");
JTextField jf = new JTextField();
Font font = new Font("宋体", Font.ITALIC, 16);
private boolean flag = false;
private String operand1;
private String operand2;
private double result;
private String action;
public TestJiSuanQi() {
for (int i = 0; i < name.length; i++) {
jb[i] = new Button(name[i]);
jb[i].setFont(font);
jb[i].setBackground(Color.lightGray);
jp.add(jb[i]);
}
this.setSize(380, 400);
this.setTitle("MY计算器");
jp.setBounds(10, 60, 280, 210);
jf.setBounds(10, 10, 340, 40);
jf.setFont(font);
jf.setBackground(Color.PINK);
jf.setHorizontalAlignment(JTextField.RIGHT);
jf.setText("0");
this.add(jf);
this.setLayout(null);
剩余13页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦