Java实现窗口计算器代码
时间: 2024-04-30 21:21:46 浏览: 10
以下是一个简单的 Java 窗口计算器的实现代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField textField;
private JButton[] buttons;
private String[] buttonLabels = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "+", "="};
private double number1, number2;
private String operator;
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
}
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLayout(new BorderLayout());
textField = new JTextField();
add(textField, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 4));
buttons = new JButton[16];
for (int i = 0; i < 16; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttons[i].addActionListener(this);
buttonPanel.add(buttons[i]);
}
add(buttonPanel, BorderLayout.CENTER);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
switch (command) {
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case ".":
textField.setText(textField.getText() + command);
break;
case "+":
case "-":
case "*":
case "/":
number1 = Double.parseDouble(textField.getText());
operator = command;
textField.setText("");
break;
case "=":
number2 = Double.parseDouble(textField.getText());
double result = 0;
switch (operator) {
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1 / number2;
break;
}
textField.setText(Double.toString(result));
break;
default:
System.out.println("Invalid command.");
}
}
}
```
这个计算器 GUI 界面使用了 BorderLayout 布局,包含一个文本框和一个按钮面板。在按钮面板上使用了一个 GridLayout 布局,使得所有按钮都等宽等高。按钮的标签存储在一个字符串数组中,通过循环来设置每个按钮的标签,并将其添加到按钮面板中。需要注意的是,我们为每个按钮添加了一个 ActionListener 监听器,以便在用户点击按钮时执行相应的操作。
在 actionPerformed 方法中,我们使用了一个 switch 语句来根据用户点击的按钮执行相应的操作。当用户点击数字或小数点按钮时,我们将其添加到文本框中。当用户点击加、减、乘、除按钮时,我们将文本框中的数字转换为 double 类型并存储在变量 number1 中,并保存操作符。当用户点击等号按钮时,我们将文本框中的数字转换为 double 类型并存储在变量 number2 中,然后根据操作符计算结果并将其显示在文本框中。
最后,我们在 main 方法中创建一个 Calculator 对象并将其设置为可见。