利用 Java 开发一个可以进行简单的四则运算的图形化计算器,3、基本功能要求如下: (1)要求计算器至少能够实现基本的加减乘除运算和清空功能。 (2)C按钮用于实现清空操作,直接将显示置零。(3)注释每一行代码的作用
时间: 2024-02-15 11:06:10 浏览: 79
好的,以下是利用 Java 开发简单的四则运算图形化计算器的代码和注释:
```java
import java.awt.*; // 导入 AWT 包
import java.awt.event.*; // 导入 AWT 事件包
import javax.swing.*; // 导入 Swing 包
public class Calculator extends JFrame implements ActionListener { // 继承 JFrame 类并实现 ActionListener 接口
private static final long serialVersionUID = 1L; // 序列化版本号
private JTextField textField; // 文本框用于显示计算结果
private JButton[] buttons; // 按钮数组
private String[] buttonLabels = { // 按钮标签数组
"7", "8", "9", "+",
"4", "5", "6", "-",
"1", "2", "3", "*",
"0", ".", "=", "/"
};
private double num1, num2; // 用于保存运算数的变量
private String operator; // 用于保存运算符的变量
public Calculator() { // 构造方法
super("Calculator"); // 调用父类构造方法设置窗口标题
setSize(300, 300); // 设置窗口大小
setLocationRelativeTo(null); // 将窗口置于屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE); // 点击关闭按钮时退出程序
textField = new JTextField("0"); // 创建文本框并初始化为 0
textField.setEditable(false); // 禁止手动编辑文本框内容
add(textField, BorderLayout.NORTH); // 将文本框添加到窗口的北部
JPanel buttonPanel = new JPanel(); // 创建按钮面板
buttonPanel.setLayout(new GridLayout(4, 4)); // 设置按钮面板为 4 行 4 列的网格布局
buttons = new JButton[16]; // 初始化按钮数组
for (int i = 0; i < buttons.length; i++) { // 遍历按钮数组
buttons[i] = new JButton(buttonLabels[i]); // 创建按钮并设置标签
buttons[i].addActionListener(this); // 添加按钮点击事件监听器
buttonPanel.add(buttons[i]); // 将按钮添加到按钮面板
}
add(buttonPanel, BorderLayout.CENTER); // 将按钮面板添加到窗口的中央
setVisible(true); // 显示窗口
}
public void actionPerformed(ActionEvent e) { // 实现 ActionListener 接口的 actionPerformed 方法
String command = e.getActionCommand(); // 获取事件源的标签文本
switch (command) { // 根据标签文本进行分支处理
case "C":
textField.setText("0"); // 清空文本框
num1 = num2 = 0; // 将运算数清零
operator = null; // 将运算符清空
break;
case "+":
case "-":
case "*":
case "/":
num1 = Double.parseDouble(textField.getText()); // 将文本框内容转换为双精度浮点数并保存到 num1
operator = command; // 保存运算符
textField.setText("0"); // 清空文本框
break;
case "=":
num2 = Double.parseDouble(textField.getText()); // 将文本框内容转换为双精度浮点数并保存到 num2
switch (operator) { // 根据运算符进行分支处理
case "+":
textField.setText(Double.toString(num1 + num2)); // 将 num1 和 num2 相加并显示结果
break;
case "-":
textField.setText(Double.toString(num1 - num2)); // 将 num1 和 num2 相减并显示结果
break;
case "*":
textField.setText(Double.toString(num1 * num2)); // 将 num1 和 num2 相乘并显示结果
break;
case "/":
textField.setText(Double.toString(num1 / num2)); // 将 num1 和 num2 相除并显示结果
break;
}
num1 = num2 = 0; // 将运算数清零
operator = null; // 将运算符清空
break;
default:
if (textField.getText().equals("0")) { // 如果文本框内容为 0
textField.setText(command); // 将文本框内容设置为按钮标签文本
} else {
textField.setText(textField.getText() + command); // 在文本框内容后面添加按钮标签文本
}
break;
}
}
public static void main(String[] args) { // 主方法
new Calculator(); // 创建计算器对象
}
}
```
注释已经在代码中标注,运行该程序可以得到一个简单的四则运算图形化计算器。希望能够帮助到你。
阅读全文