简介
这是我在csdn上的第一篇博客,主要记录做java计算器的所需步骤和所遇困难。
项目地址
https://gitee.com/brunozzz/calculator
用户界面及功能介绍
该计算器已完成加减乘除、平方及平方根、AC、连续运算等功能。
未实现功能n次方、分数等。
建立步骤
由于小熊已经帮我引用java.swing和java.awt及写好了一个基础的计算器,所以此处只谈论关于自己所增加的新代码。
在
JButton b0, b1, b2, b3,
处添加新按键;
在
void addComponentsToPanel() {
panel.add(display);
处将按键添加到计算器上;
在
void attachListeners() {
btnAdd.addActionListener(this);`
处设置好按键的监听,使在面板上点击按键时有反应;
在
void createButtons() {
b0 = new JButton("0");`
处把按键“贴”到面板上;
在**(重要)**
public void actionPerformed(ActionEvent e) {
var command = e.getActionCommand();
char c = command.charAt(0);
if (isOperand(c)) {
完善好 “AC”、“=”、“.”、“连续运算" 等功能;
需要注意的代码有以下:
关于“=”,
} else if (c == '=') {
if (times < 1) {
operand1 = Double.parseDouble(displayText);
} else {
double result = computeResult();
displayText = Double.toString(result);
operator = command;
operand1 = Double.parseDouble(displayText);
times = 0;
shouldAppendDigitToNumber = false;
}
关于“.”,
} else if (c == '.') {
if (shouldAppendDigitToNumber) {
if (displayText.contains(command)) {
displayText += "";
} else {
displayText += command;
}
} else {
displayText = "0";
displayText += command;
shouldAppendDigitToNumber = true;
}
关于“AC”及“连续运算”,
} else if (c == 'a') {
displayText = "0";
operand1 = Double.parseDouble(displayText);
times = 0;
shouldAppendDigitToNumber = false;
} else {
if (times < 1) {
operand1 = Double.parseDouble(displayText);
} else {
double result = computeResult();
operand1 = result;
displayText = Double.toString(result);
}
shouldAppendDigitToNumber = false;
operator = command;
times += 1;
ps:times 需要一开始初始化为0
i.e.:int times = 0;
知识点
if_else 函数是通过(true or false)来判定的;
上面的 shouldAppendDigitToNumber 是一个自定义变量;
总结
看了别人的代码总有种自己是沙口的感觉,继续努力。