利用java创建一个计算器程序窗口代码加注释
时间: 2024-02-16 07:00:01 浏览: 69
用java做的计算器程序
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
// 声明组件
private JTextField displayField; // 显示文本框
private JButton[] numberButtons; // 数字按钮
private JButton[] operatorButtons; // 运算符按钮
private JButton clearButton, equalsButton; // 清除和等于按钮
// 声明操作数和运算符变量
private double operand1, operand2;
private String operator;
public Calculator() {
super("Calculator"); // 设置窗口标题
// 创建显示文本框,并设置为只读
displayField = new JTextField(16);
displayField.setEditable(false);
add(displayField, BorderLayout.NORTH); // 添加到窗口的北部
// 创建数字按钮,并添加到面板
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
numberButtons = new JButton[10];
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton(Integer.toString(i));
numberButtons[i].addActionListener(this); // 添加事件监听器
buttonPanel.add(numberButtons[i]);
}
// 创建运算符按钮,并添加到面板
operatorButtons = new JButton[6];
operatorButtons[0] = new JButton("+");
operatorButtons[1] = new JButton("-");
operatorButtons[2] = new JButton("*");
operatorButtons[3] = new JButton("/");
operatorButtons[4] = new JButton(".");
operatorButtons[5] = new JButton("C");
for (int i = 0; i < 6; i++) {
operatorButtons[i].addActionListener(this); // 添加事件监听器
buttonPanel.add(operatorButtons[i]);
}
add(buttonPanel, BorderLayout.CENTER); // 添加到窗口的中心
// 创建清除和等于按钮,并添加到面板
equalsButton = new JButton("=");
equalsButton.addActionListener(this); // 添加事件监听器
clearButton = new JButton("C");
clearButton.addActionListener(this); // 添加事件监听器
JPanel bottomPanel = new JPanel();
bottomPanel.add(clearButton);
bottomPanel.add(equalsButton);
add(bottomPanel, BorderLayout.SOUTH); // 添加到窗口的南部
pack(); // 自动调整窗口大小
setVisible(true); // 显示窗口
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
// 处理运算符按钮
if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/")) {
operand1 = Double.parseDouble(displayField.getText()); // 获取第一个操作数
operator = command; // 获取运算符
displayField.setText(""); // 清空文本框
}
// 处理小数点按钮
else if (command.equals(".")) {
if (!displayField.getText().contains(".")) { // 确保不重复添加小数点
displayField.setText(displayField.getText() + ".");
}
}
// 处理等于按钮
else if (command.equals("=")) {
operand2 = Double.parseDouble(displayField.getText()); // 获取第二个操作数
double result = 0.0;
// 根据运算符计算结果
if (operator.equals("+")) {
result = operand1 + operand2;
} else if (operator.equals("-")) {
result = operand1 - operand2;
} else if (operator.equals("*")) {
result = operand1 * operand2;
} else if (operator.equals("/")) {
result = operand1 / operand2;
}
displayField.setText(Double.toString(result)); // 显示结果
}
// 处理清除按钮
else if (command.equals("C")) {
displayField.setText(""); // 清空文本框
}
// 处理数字按钮
else {
displayField.setText(displayField.getText() + command); // 在文本框中添加数字
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭操作
}
}
```
阅读全文