使用Java语言编写程序实现一个简单的运算器,要求至少实现加减乘除四则运算,运算器功能界面排布尽量接近实际的运算器,数字输入通过界面上的数字按钮进行
时间: 2023-12-20 15:07:19 浏览: 74
好的,下面是一个简单的Java程序实现一个四则运算器,包括加、减、乘、除四种运算,以及用户界面的设计:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField textField;
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() {
super("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4, 4, 4));
textField = new JTextField("0");
textField.setEditable(false);
add(textField, BorderLayout.NORTH);
buttons = new JButton[16];
for (int i = 0; i < 16; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttons[i].addActionListener(this);
panel.add(buttons[i]);
}
add(panel, BorderLayout.CENTER);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if (label.equals("C")) {
result = 0;
operator = "";
start = true;
textField.setText("0");
} else if (label.equals("=")) {
if (!operator.equals("")) {
double num = Double.parseDouble(textField.getText());
if (operator.equals("+")) {
result += num;
} else if (operator.equals("-")) {
result -= num;
} else if (operator.equals("*")) {
result *= num;
} else if (operator.equals("/")) {
result /= num;
}
operator = "";
textField.setText("" + result);
start = true;
}
} else if (label.equals("+") || label.equals("-") || label.equals("*") || label.equals("/")) {
if (!operator.equals("")) {
double num = Double.parseDouble(textField.getText());
if (operator.equals("+")) {
result += num;
} else if (operator.equals("-")) {
result -= num;
} else if (operator.equals("*")) {
result *= num;
} else if (operator.equals("/")) {
result /= num;
}
textField.setText("" + result);
}
operator = label;
start = true;
} else {
if (start) {
textField.setText(label);
start = false;
} else {
textField.setText(textField.getText() + label);
}
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
程序中的`Calculator`类继承自`JFrame`,实现了`ActionListener`接口,用于处理用户界面上的按钮事件。在构造函数中,首先创建一个`JPanel`对象,用于排版16个按钮,然后将16个按钮添加到该面板中,最后将面板和文本框添加到主窗口中。
在`actionPerformed`方法中,通过`getActionCommand`方法获取用户点击的按钮标签,根据标签执行相应的操作。如果用户点击的是数字按钮,则将数字显示在文本框中;如果用户点击的是运算符按钮,则根据当前的运算符和文本框中的数字计算结果;如果用户点击的是等号按钮,则直接计算结果;如果用户点击的是清除按钮,则将所有状态重置为初始状态。
该程序还有一些不足之处,例如没有考虑除数为0的情况,没有实现括号和负数等高级运算,但是可以通过增加代码来实现这些功能。
阅读全文