java设计和编写一个简易的计算器:实现计算器的界面;实现计算按钮不同的计算功能;显示计算器按钮运算后的结果。
时间: 2023-11-27 12:50:10 浏览: 70
这里提供一个简单的Java计算器的设计和编写方法,主要分为以下几个步骤:
1. 设计计算器的界面
根据计算器的功能,我们可以设计出如下的简单计算器界面:
```
+--------------------------+
| |
| 0 |
| |
| 7 8 9 / |
| |
| 4 5 6 * |
| |
| 1 2 3 - |
| |
| 0 . = + |
| |
+--------------------------+
```
其中,0表示显示计算结果的文本框,其他按钮表示不同的计算功能。
2. 实现计算器的界面
使用Java Swing框架可以很容易地实现上述界面,示例代码如下:
```java
import javax.swing.*;
import java.awt.*;
public class Calculator extends JFrame {
private JTextField resultField;
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(250, 200);
setLocationRelativeTo(null);
JPanel panel = new JPanel(new GridLayout(4, 4, 5, 5));
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
add(panel, BorderLayout.CENTER);
resultField = new JTextField("0", 20);
resultField.setEditable(false);
add(resultField, BorderLayout.NORTH);
JButton button7 = new JButton("7");
panel.add(button7);
JButton button8 = new JButton("8");
panel.add(button8);
JButton button9 = new JButton("9");
panel.add(button9);
JButton buttonDivide = new JButton("/");
panel.add(buttonDivide);
JButton button4 = new JButton("4");
panel.add(button4);
JButton button5 = new JButton("5");
panel.add(button5);
JButton button6 = new JButton("6");
panel.add(button6);
JButton buttonMultiply = new JButton("*");
panel.add(buttonMultiply);
JButton button1 = new JButton("1");
panel.add(button1);
JButton button2 = new JButton("2");
panel.add(button2);
JButton button3 = new JButton("3");
panel.add(button3);
JButton buttonMinus = new JButton("-");
panel.add(buttonMinus);
JButton button0 = new JButton("0");
panel.add(button0);
JButton buttonDot = new JButton(".");
panel.add(buttonDot);
JButton buttonEqual = new JButton("=");
panel.add(buttonEqual);
JButton buttonPlus = new JButton("+");
panel.add(buttonPlus);
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}
```
3. 实现计算按钮不同的计算功能
计算器上的按钮都有不同的计算功能,可以通过为每个按钮添加ActionListener来实现。示例代码如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame implements ActionListener {
private JTextField resultField;
private double firstNumber;
private String operator;
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(250, 200);
setLocationRelativeTo(null);
JPanel panel = new JPanel(new GridLayout(4, 4, 5, 5));
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
add(panel, BorderLayout.CENTER);
resultField = new JTextField("0", 20);
resultField.setEditable(false);
add(resultField, BorderLayout.NORTH);
JButton button7 = new JButton("7");
panel.add(button7);
button7.addActionListener(this);
JButton button8 = new JButton("8");
panel.add(button8);
button8.addActionListener(this);
JButton button9 = new JButton("9");
panel.add(button9);
button9.addActionListener(this);
JButton buttonDivide = new JButton("/");
panel.add(buttonDivide);
buttonDivide.addActionListener(this);
JButton button4 = new JButton("4");
panel.add(button4);
button4.addActionListener(this);
JButton button5 = new JButton("5");
panel.add(button5);
button5.addActionListener(this);
JButton button6 = new JButton("6");
panel.add(button6);
button6.addActionListener(this);
JButton buttonMultiply = new JButton("*");
panel.add(buttonMultiply);
buttonMultiply.addActionListener(this);
JButton button1 = new JButton("1");
panel.add(button1);
button1.addActionListener(this);
JButton button2 = new JButton("2");
panel.add(button2);
button2.addActionListener(this);
JButton button3 = new JButton("3");
panel.add(button3);
button3.addActionListener(this);
JButton buttonMinus = new JButton("-");
panel.add(buttonMinus);
buttonMinus.addActionListener(this);
JButton button0 = new JButton("0");
panel.add(button0);
button0.addActionListener(this);
JButton buttonDot = new JButton(".");
panel.add(buttonDot);
buttonDot.addActionListener(this);
JButton buttonEqual = new JButton("=");
panel.add(buttonEqual);
buttonEqual.addActionListener(this);
JButton buttonPlus = new JButton("+");
panel.add(buttonPlus);
buttonPlus.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("0") || command.equals("1") || command.equals("2") ||
command.equals("3") || command.equals("4") || command.equals("5") ||
command.equals("6") || command.equals("7") || command.equals("8") ||
command.equals("9")) {
if (resultField.getText().equals("0")) {
resultField.setText(command);
} else {
resultField.setText(resultField.getText() + command);
}
} else if (command.equals(".")) {
if (!resultField.getText().contains(".")) {
resultField.setText(resultField.getText() + ".");
}
} else if (command.equals("/")) {
firstNumber = Double.parseDouble(resultField.getText());
operator = "/";
resultField.setText("0");
} else if (command.equals("*")) {
firstNumber = Double.parseDouble(resultField.getText());
operator = "*";
resultField.setText("0");
} else if (command.equals("-")) {
firstNumber = Double.parseDouble(resultField.getText());
operator = "-";
resultField.setText("0");
} else if (command.equals("+")) {
firstNumber = Double.parseDouble(resultField.getText());
operator = "+";
resultField.setText("0");
} else if (command.equals("=")) {
double secondNumber = Double.parseDouble(resultField.getText());
if (operator.equals("/")) {
resultField.setText(String.valueOf(firstNumber / secondNumber));
} else if (operator.equals("*")) {
resultField.setText(String.valueOf(firstNumber * secondNumber));
} else if (operator.equals("-")) {
resultField.setText(String.valueOf(firstNumber - secondNumber));
} else if (operator.equals("+")) {
resultField.setText(String.valueOf(firstNumber + secondNumber));
}
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
4. 显示计算器按钮运算后的结果
当用户点击“=”按钮时,我们需要根据之前输入的数字和运算符进行计算,并将计算结果显示在文本框中。代码中已经实现了这一功能。
到此为止,一个简单的Java计算器就完成了。