利用java编写一个计算机窗口,计算机可以计算加减乘除,pow、sqrt、log10程序代码加注释
时间: 2024-02-01 11:04:52 浏览: 30
好的,以下是一个基本的计算器窗口,可以实现加减乘除、pow、sqrt、log10等计算:
```java
import java.awt.*; // 导入 AWT 包
import java.awt.event.*; // 导入 AWT 事件包
public class Calculator extends Frame implements ActionListener {
private TextField tf; // 文本框用于显示计算结果
private double num1, num2, result; // 用于存储两个操作数和结果
private String operator; // 存储运算符
public Calculator() {
setLayout(new BorderLayout()); // 设置边界布局
tf = new TextField(); // 创建文本框
tf.setEditable(false); // 不可编辑
add(tf, BorderLayout.NORTH); // 将文本框添加到窗口的北部
Panel p = new Panel(); // 创建面板
p.setLayout(new GridLayout(4, 4)); // 设置网格布局
String[] buttons = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "C", "+"}; // 创建按钮数组
for (int i = 0; i < buttons.length; i++) {
Button b = new Button(buttons[i]); // 创建按钮
b.addActionListener(this); // 添加事件监听器
p.add(b); // 将按钮添加到面板
}
add(p, BorderLayout.CENTER); // 将面板添加到窗口的中央
addWindowListener(new WindowAdapter() { // 添加窗口关闭事件监听器
public void windowClosing(WindowEvent we) {
System.exit(0); // 关闭窗口
}
});
}
public void actionPerformed(ActionEvent ae) {
String s = ae.getActionCommand(); // 获取按钮上的文本
if (s.equals("C")) { // 清空操作
tf.setText("");
num1 = 0;
num2 = 0;
operator = "";
} else if (s.equals("+")) { // 加法操作
num1 = Double.parseDouble(tf.getText());
operator = "+";
tf.setText("");
} else if (s.equals("-")) { // 减法操作
num1 = Double.parseDouble(tf.getText());
operator = "-";
tf.setText("");
} else if (s.equals("*")) { // 乘法操作
num1 = Double.parseDouble(tf.getText());
operator = "*";
tf.setText("");
} else if (s.equals("/")) { // 除法操作
num1 = Double.parseDouble(tf.getText());
operator = "/";
tf.setText("");
} else if (s.equals("sqrt")) { // 平方根操作
num1 = Double.parseDouble(tf.getText());
result = Math.sqrt(num1);
tf.setText(Double.toString(result));
} else if (s.equals("pow")) { // 幂操作
num1 = Double.parseDouble(tf.getText());
operator = "pow";
tf.setText("");
} else if (s.equals("log10")) { // 对数操作
num1 = Double.parseDouble(tf.getText());
result = Math.log10(num1);
tf.setText(Double.toString(result));
} else if (s.equals("=")) { // 等于操作
num2 = Double.parseDouble(tf.getText());
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;
} else if (operator.equals("pow")) { // 幂
result = Math.pow(num1, num2);
}
tf.setText(Double.toString(result));
} else { // 数字操作
tf.setText(tf.getText() + s);
}
}
public static void main(String[] args) {
Calculator calc = new Calculator(); // 创建计算器窗口
calc.setTitle("Calculator"); // 设置窗口标题
calc.setSize(200, 200); // 设置窗口大小
calc.setVisible(true); // 显示窗口
}
}
```
注释已经加上,如果还有问题,可以随时问我。