请编写一个Java程序实现如下图所示的“简易计算器”窗口(CalculatorFrame)
时间: 2024-02-25 16:59:34 浏览: 24
好的,我可以为你编写一个简易计算器窗口的Java程序。下面是代码实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalculatorFrame extends JFrame implements ActionListener {
private JTextField displayField;
private JButton[] numberButtons;
private JButton addButton, subButton, mulButton, divButton, equalButton, clearButton;
private String currentOperator = null;
private int currentValue = 0;
public CalculatorFrame() {
super("简易计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 显示区域
displayField = new JTextField("0", 20);
displayField.setEditable(false);
JPanel displayPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
displayPanel.add(displayField);
add(displayPanel, BorderLayout.NORTH);
// 数字按钮
numberButtons = new JButton[10];
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton("" + i);
numberButtons[i].addActionListener(this);
}
// 操作符按钮
addButton = new JButton("+");
subButton = new JButton("-");
mulButton = new JButton("*");
divButton = new JButton("/");
equalButton = new JButton("=");
clearButton = new JButton("C");
addButton.addActionListener(this);
subButton.addActionListener(this);
mulButton.addActionListener(this);
divButton.addActionListener(this);
equalButton.addActionListener(this);
clearButton.addActionListener(this);
// 按钮区域
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
buttonPanel.add(numberButtons[7]);
buttonPanel.add(numberButtons[8]);
buttonPanel.add(numberButtons[9]);
buttonPanel.add(addButton);
buttonPanel.add(numberButtons[4]);
buttonPanel.add(numberButtons[5]);
buttonPanel.add(numberButtons[6]);
buttonPanel.add(subButton);
buttonPanel.add(numberButtons[1]);
buttonPanel.add(numberButtons[2]);
buttonPanel.add(numberButtons[3]);
buttonPanel.add(mulButton);
buttonPanel.add(clearButton);
buttonPanel.add(numberButtons[0]);
buttonPanel.add(equalButton);
buttonPanel.add(divButton);
add(buttonPanel, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == clearButton) {
currentOperator = null;
currentValue = 0;
displayField.setText("0");
} else if (source == equalButton) {
if (currentOperator != null) {
int value = Integer.parseInt(displayField.getText());
switch (currentOperator) {
case "+":
currentValue += value;
break;
case "-":
currentValue -= value;
break;
case "*":
currentValue *= value;
break;
case "/":
currentValue /= value;
break;
}
displayField.setText("" + currentValue);
currentOperator = null;
}
} else if (source == addButton || source == subButton || source == mulButton || source == divButton) {
if (currentOperator != null) {
int value = Integer.parseInt(displayField.getText());
switch (currentOperator) {
case "+":
currentValue += value;
break;
case "-":
currentValue -= value;
break;
case "*":
currentValue *= value;
break;
case "/":
currentValue /= value;
break;
}
displayField.setText("" + currentValue);
} else {
currentValue = Integer.parseInt(displayField.getText());
}
currentOperator = ((JButton) source).getText();
displayField.setText("0");
} else {
String text = displayField.getText();
if (text.equals("0")) {
text = "";
}
text += ((JButton) source).getText();
displayField.setText(text);
}
}
public static void main(String[] args) {
CalculatorFrame frame = new CalculatorFrame();
frame.setVisible(true);
}
}
```
你可以在本地运行该代码,打开一个简易计算器窗口,可以进行加减乘除的计算。注意,这里使用了Java的GUI库Swing来实现窗口和按钮,使用了事件监听器ActionListener来处理按钮点击事件,实现了简单的计算器功能。