基于swing的计算器带注释
时间: 2023-08-11 09:07:57 浏览: 51
以下是一个基于Swing的计算器,其中包含注释:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField display; // 显示计算结果的文本框
private JButton[] buttons; // 按钮数组
private String[] buttonLabels = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"}; // 按钮标签
private double result = 0; // 计算结果
private String operator = ""; // 当前操作符
private boolean start = true; // 是否开始一个新的计算
public Calculator() {
setTitle("Calculator"); // 设置窗口标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭按钮的默认操作
setSize(400, 400); // 设置窗口大小
setLayout(new BorderLayout()); // 设置布局为边界布局
display = new JTextField(); // 创建文本框对象
display.setEditable(false); // 设置文本框不可编辑
add(display, BorderLayout.NORTH); // 将文本框添加到窗口的北部
JPanel buttonPanel = new JPanel(); // 创建按钮面板对象
buttonPanel.setLayout(new GridLayout(4, 4)); // 设置按钮面板的布局为网格布局
buttons = new JButton[buttonLabels.length]; // 创建按钮数组
for (int i = 0; i < buttonLabels.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) {
String input = e.getActionCommand(); // 获取按钮的标签文本
if (start) { // 如果是新的计算
if (input.equals("-")) { // 如果输入的是负号
display.setText(input); // 在文本框中显示负号
start = false; // 标记为不是新的计算
} else { // 如果输入的不是负号
operator = input; // 保存操作符
start = false; // 标记为不是新的计算
}
} else { // 如果不是新的计算
double inputValue = Double.parseDouble(display.getText()); // 获取输入的数值
if (operator.equals("+")) { // 如果是加
result += inputValue; // 计算加法
} else if (operator.equals("-")) { // 如果是减
result -= inputValue; // 计算减法
} else if (operator.equals("*")) { // 如果是乘
result *= inputValue; // 计算乘法
} else if (operator.equals("/")) { // 如果是除
result /= inputValue; // 计算除法
} else if (operator.equals("=")) { // 如果是等于
result = inputValue; // 将计算结果赋值给result
}
display.setText("" + result); // 在文本框中显示计算结果
operator = input; // 保存操作符
}
}
public static void main(String[] args) {
new Calculator(); // 创建计算器对象
}
}
```
这个计算器使用了Swing框架来创建用户界面,并实现了基本的加减乘除运算。其中,`actionPerformed`方法用于处理按钮点击事件,`start`变量用于标记是否开始一个新的计算,`result`变量用于保存计算结果,`operator`变量用于保存当前的操作符。