帮我写一个编写简易计算器程序Calculator.java,能进行加减乘除的操作。用gul,界面类似苹果的计算器,并且注释详细点,运算结果需要精准
时间: 2023-12-03 20:44:56 浏览: 104
java编写的计算器,能实现加减乘除
5星 · 资源好评率100%
好的,以下是一个简单的计算器程序Calculator.java的示例代码,使用了Swing GUI库来实现界面:
```java
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextField display;
private String operator;
private double number1, number2;
public Calculator() {
super("Calculator");
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
display = new JTextField();
add(display, BorderLayout.NORTH);
JButton button1 = new JButton("1");
button1.addActionListener(this);
panel.add(button1);
JButton button2 = new JButton("2");
button2.addActionListener(this);
panel.add(button2);
JButton button3 = new JButton("3");
button3.addActionListener(this);
panel.add(button3);
JButton buttonAdd = new JButton("+");
buttonAdd.addActionListener(this);
panel.add(buttonAdd);
JButton button4 = new JButton("4");
button4.addActionListener(this);
panel.add(button4);
JButton button5 = new JButton("5");
button5.addActionListener(this);
panel.add(button5);
JButton button6 = new JButton("6");
button6.addActionListener(this);
panel.add(button6);
JButton buttonSubtract = new JButton("-");
buttonSubtract.addActionListener(this);
panel.add(buttonSubtract);
JButton button7 = new JButton("7");
button7.addActionListener(this);
panel.add(button7);
JButton button8 = new JButton("8");
button8.addActionListener(this);
panel.add(button8);
JButton button9 = new JButton("9");
button9.addActionListener(this);
panel.add(button9);
JButton buttonMultiply = new JButton("*");
buttonMultiply.addActionListener(this);
panel.add(buttonMultiply);
JButton buttonClear = new JButton("C");
buttonClear.addActionListener(this);
panel.add(buttonClear);
JButton button0 = new JButton("0");
button0.addActionListener(this);
panel.add(button0);
JButton buttonEquals = new JButton("=");
buttonEquals.addActionListener(this);
panel.add(buttonEquals);
JButton buttonDivide = new JButton("/");
buttonDivide.addActionListener(this);
panel.add(buttonDivide);
add(panel);
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
public void actionPerformed(ActionEvent event) {
String command = event.getActionCommand();
if (command.charAt(0) >= '0' && command.charAt(0) <= '9' || command.equals(".")) {
if (!display.getText().contains(".")) {
display.setText(display.getText() + command);
}
} else if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/")) {
operator = command;
number1 = Double.parseDouble(display.getText());
display.setText("");
} else if (command.equals("C")) {
display.setText("");
} else if (command.equals("=")) {
number2 = Double.parseDouble(display.getText());
switch (operator) {
case "+":
display.setText(String.format("%.2f", number1 + number2));
break;
case "-":
display.setText(String.format("%.2f", number1 - number2));
break;
case "*":
display.setText(String.format("%.2f", number1 * number2));
break;
case "/":
display.setText(String.format("%.2f", number1 / number2));
break;
}
}
}
}
```
该程序使用了一个JTextField来显示输入和结果,使用JButton来实现数字和操作符的输入,使用ActionListener来处理按钮的点击事件。
当用户点击数字按钮时,程序会将数字添加到显示文本框的末尾。当用户点击操作符按钮时,程序会将操作符保存在变量operator中,并将当前显示的数字保存在变量number1中,并清空显示文本框。当用户点击“=”按钮时,程序会将当前显示的数字保存在变量number2中,并根据操作符进行相应的计算,并将结果显示在文本框中。当用户点击“C”按钮时,程序会将文本框清空。
在计算过程中,程序使用了Java的内置数学函数来进行精确计算,并使用String.format()方法来将结果格式化为两位小数。
阅读全文