计算器是我们日常生活中经常使用的工具之一,而Java计算器则是计算器中的一个重要工具,它是由Java语言编写的,可以进行各种复杂的算术运算。如果您想了解Java计算器的源代码,那么本篇文章就是为您而写的。
编写Java计算器的源代码有很多,不同的编程人员都有不同的风格和方法,但是本文将向您介绍一个比较简单、易懂的源代码。以下是完整的源代码:
```
import java.awt.*; //导入使用窗口
import java.awt.event.*; //导入使用事件
public class Calculator extends Frame implements ActionListener {
//创建计算器类,继承Frame并实现ActionListener
private TextField tfResult; //定义一个文本框tfResult
private double num1, num2, result; //定义3个double类型变量,并初始化为0
private String operator; //定义一个字符型变量operator
public Calculator() {
//构造方法
super("Java Calculator"); //设置计算器框的名称
setSize(400, 400); //设置窗口大小
tfResult = new TextField("0"); //初始化文本框tfResult
add(tfResult, BorderLayout.NORTH); //将文本框加入到窗口的最上方
Panel buttonPanel = new Panel(); //创建一个面板
buttonPanel.setLayout(new GridLayout(5, 4, 3, 3)); //设置面板布局为网格布局
String[] buttonLabels = {"7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", ".", "0", "=", "/", "C", "CE"}; //定义一个字符串数组存储按钮标签
for (int i = 0; i < buttonLabels.length; i++) {
Button b = new Button(buttonLabels[i]); //创建按钮
buttonPanel.add(b); //将按钮加入到面板
b.addActionListener(this); //添加按钮事件监听器
}
add(buttonPanel, BorderLayout.CENTER); //将面板加入到窗口的中心
addWindowListener(new WindowAdapter() { //添加窗口事件监听器,使得该窗口能够被关闭
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true); //将计算器框设为可见状态
}
public void actionPerformed(ActionEvent e) {
//按钮事件处理方法
String buttonLabel = e.getActionCommand(); //获取按钮标签
if (buttonLabel.equals("C")) { //如果按钮被按下是C(清除按钮)
num1 = 0; //这3句的作用为将3个double变量全部重置为0
num2 = 0;
result = 0;
tfResult.setText("0"); //将文本框内容设置为0
} else if (buttonLabel.equals("CE")) { //如果按钮被按下是CE(清除上一步按钮)
String text = tfResult.getText(); //获取文本框内容
if (text.length() > 0) { //如果文本框不为空
text = text.substring(0, text.length() - 1); //获取文本框内容的子字符串
tfResult.setText(text); //更新文本框内容
}
} else if (buttonLabel.equals("+") || buttonLabel.equals("-") || buttonLabel.equals("*") || buttonLabel.equals("/")) { //如果按钮被按下是加减乘除
num1 = Double.parseDouble(tfResult.getText()); //将文本框内容转换为double类型并赋值给num1
operator = buttonLabel; //将当前的操作符赋值给operator
tfResult.setText("0"); //将文本框内容重置为0
} else if (buttonLabel.equals("=")) { //如果按钮被按下是等于号
num2 = Double.parseDouble(tfResult.getText()); //将文本框内容转换为double类型并赋值给num2
if (operator.equals("+")) { //如果操作符为加号
result = num1 + num2; //做加法运算
} else if (operator.equals("-")) { //如果操作符为减号
result = num1 - num2; //做减法运算
} else if (operator.equals("*")) { //如果操作符为乘号
result = num1 * num2; //做乘法运算
} else if (operator.equals("/")) { //如果操作符为除号
result = num1 / num2; //做除法运算
}
tfResult.setText("" + result); //将运算结果显示到文本框中
} else { //如果按钮被按下的是数字键或小数点
String text = tfResult.getText(); //获取文本框内容
if (text.length() == 1 && text.charAt(0) == '0' && !buttonLabel.equals(".")) {
//如果文本框内容为0并且该按钮不是小数点按钮
tfResult.setText(buttonLabel); //将按钮的标签赋值给文本框内容
} else {
//否则
tfResult.setText(text + buttonLabel); //将按钮的标签以及文本框内容组合起来,更新文本框内容
}
}
}
public static void main(String[] args) {
//主方法
Calculator calculator = new Calculator(); //创建一个计算器对象
}
}
```
在以上的源代码中,我们使用Java的GUI库,即java.awt和java.awt.event来创建了一个简单的计算器。先从前往后解释下源代码的具体内容:
第1行-第3行:使用import语句导入Java的GUI库
第5行:创建了一个名为Calculator的类,并继承自Frame类,同时实现ActionListener接口
第7-10行:定义了三个变量(num1,num2和result),用于存储进行计算的数值;并定义一个变量(operator)用于存储操作符
第12行:创建了一个名为tfResult的TextField类,用于在计算器窗口中进行数字、符号的显示
第14行:使用setSize()方法来设置计算器窗口大小
第16-18行:使用add()方法将tfResult文本框加入到在窗口的北部,作为计算器的显示区域
第20行:创建一个名为buttonPanel的Panel类,用于存储计算器的按钮
第22行:使用setLayout()方法设置buttonPanel的布局格式
第24行:定义了一个标签为String数组buttonLabels[],存储着将要加入到面板上的按钮
第26-34行:使用for循环遍历计算器按钮的标签数组,并定义Button变量b将标签内容label作为参数,并将按钮加入到buttonPanel上。同时,每个按钮还需要添加监听器addActionListener(),以响应点击事件
第36-42行:使用add()方法将buttonPanel添加至窗口中心位置
第44-49行:使用addWindowListener()方法为窗口添加事件监听,这样能在用户关闭窗口时终止程序
第51行:使用setVisible()方法来显示计算器框
第54-155行:接下来介绍Calculator()方法
第57行:使用super("Java Calculator")设置计算器框的名称
第59行:使用setSize()方法设置计算器窗口大小为400*400
第61-63行:初始化文本框tfResult,用于在计算器窗口中进行数字、符号的显示。在初始化时,tfResult默认为"0"
第65-67行:使用add()方法将tfResult文本框加入到在窗口的北部,作为计算器的显示区域
第69行:创建一个名为buttonPanel的Panel类,继承自Frame类
第71行:使用setLayout()方法设置buttonPanel的布局格式
第73行:定义了一个标签为String数组buttonLabels[],存储着将要加入到面板上的按钮
第75-83行:使用for循环遍历计算器按钮的标签数组,并定义Button变量b将标签内容label作为参数,并将按钮加入到buttonPanel上。同样,每个按钮还需要添加监听器addActionListener(),以响应点击事件
第85-90行:使用add()方法将buttonPanel添加至窗口中心位置
第92-98行:使用addWindowListener()方法为窗口添加事件监听,这样能在用户关闭窗口时终止程序
第100行:使用setVisible()方法来显示计算器框
第112-146行:接下来介绍actionPerformed()方法
第114行:使用getActionCommand()方法获取被按下的按钮的标签名称,并将其存储在字符串变量buttonLabel中
第116-120行:如果按钮标签为"C"(清除按钮),则将三个num1,num2和result全部清空为0,将文本框的内容设置为"0"
第122-125行:如果按钮标签为"CE"(清除上一步),则在文本框不为空的情况下,采用substring()方法获取文本框内容的子字符串,将其设置为文本框内容
第127-131行:如果按钮标签为"+"、"-"、"*"或"/",则将文本框内容转换为double类型,并分别存储在num1和operator中,并将文本框内容设置为"0"
第133-142行:如果按钮标签为"=",则将文本框内容转换为double类型并存储在num2中,判断操作符为加、减、乘或除,分别进行加减乘除运算,并将结果存储在result中,并将文本框内容设置为结果
第144-153行:如果按钮标签为数字或小数点,则判断文本框内容是否为"0"和是否为小数点,并更新文本框内容
第157-160行:接下来定义了主函数main(),用于创建一个Calculator对象,即创建出一个计算器窗口
以上就是Java计算器源代码的全部内容,您可以把这些代码复制粘贴到Eclipse中,编译运行即可。总体上,这里介绍的源代码非常简单,适合Java初学者进行学习。通过这个实例,您不仅可以学习到如何使用Java的GUI库来创建计算器窗口,还可以了解到如何使用变量、运算符、输入输出语句等Java的基础语法。希望这篇文章会为您提供帮助,让您能够更轻松的入门Java编程。