java设计和编写一个简易的计算器:实现计算器的界面;实现计算按钮不同的计算功能;显示计算器按钮运算后的结果。
时间: 2023-11-27 08:50:05 浏览: 48
要实现一个简易的计算器,可以按照以下步骤进行:
1. 设计计算器的界面,可以使用 Swing 提供的组件实现。例如,可以使用 JTextField 来显示计算器按钮运算后的结果,使用 JButton 来实现计算器的各个按钮。
2. 实现计算器按钮不同的计算功能。可以使用 ActionListener 监听器来监听按钮的点击事件,并根据不同的按钮实现不同的计算功能。例如,加法按钮的点击事件可以将两个数相加,并将结果显示在 JTextField 中。
3. 显示计算器按钮运算后的结果。在实现计算功能时,将结果显示在 JTextField 中即可。
下面是一个简单的实现示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame {
private JTextField resultField;
public Calculator() {
setTitle("简易计算器");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
JButton button1 = new JButton("1");
button1.addActionListener(new NumberButtonListener());
panel.add(button1);
JButton button2 = new JButton("2");
button2.addActionListener(new NumberButtonListener());
panel.add(button2);
JButton button3 = new JButton("3");
button3.addActionListener(new NumberButtonListener());
panel.add(button3);
JButton addButton = new JButton("+");
addButton.addActionListener(new OperatorButtonListener());
panel.add(addButton);
JButton button4 = new JButton("4");
button4.addActionListener(new NumberButtonListener());
panel.add(button4);
JButton button5 = new JButton("5");
button5.addActionListener(new NumberButtonListener());
panel.add(button5);
JButton button6 = new JButton("6");
button6.addActionListener(new NumberButtonListener());
panel.add(button6);
JButton subtractButton = new JButton("-");
subtractButton.addActionListener(new OperatorButtonListener());
panel.add(subtractButton);
JButton button7 = new JButton("7");
button7.addActionListener(new NumberButtonListener());
panel.add(button7);
JButton button8 = new JButton("8");
button8.addActionListener(new NumberButtonListener());
panel.add(button8);
JButton button9 = new JButton("9");
button9.addActionListener(new NumberButtonListener());
panel.add(button9);
JButton multiplyButton = new JButton("*");
multiplyButton.addActionListener(new OperatorButtonListener());
panel.add(multiplyButton);
JButton clearButton = new JButton("C");
clearButton.addActionListener(new ClearButtonListener());
panel.add(clearButton);
JButton button0 = new JButton("0");
button0.addActionListener(new NumberButtonListener());
panel.add(button0);
JButton equalsButton = new JButton("=");
equalsButton.addActionListener(new EqualsButtonListener());
panel.add(equalsButton);
JButton divideButton = new JButton("/");
divideButton.addActionListener(new OperatorButtonListener());
panel.add(divideButton);
resultField = new JTextField();
resultField.setEditable(false);
getContentPane().add(resultField, BorderLayout.NORTH);
getContentPane().add(panel, BorderLayout.CENTER);
}
private class NumberButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
String buttonText = button.getText();
String oldText = resultField.getText();
resultField.setText(oldText + buttonText);
}
}
private class OperatorButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
String buttonText = button.getText();
String oldText = resultField.getText();
resultField.setText(oldText + " " + buttonText + " ");
}
}
private class ClearButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
resultField.setText("");
}
}
private class EqualsButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String expression = resultField.getText();
String[] parts = expression.split(" ");
if (parts.length != 3) {
JOptionPane.showMessageDialog(Calculator.this, "表达式格式不正确");
return;
}
double operand1 = Double.parseDouble(parts[0]);
double operand2 = Double.parseDouble(parts[2]);
double result = 0;
switch (parts[1]) {
case "+":
result = operand1 + operand2;
break;
case "-":
result = operand1 - operand2;
break;
case "*":
result = operand1 * operand2;
break;
case "/":
result = operand1 / operand2;
break;
}
resultField.setText(Double.toString(result));
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
}
}
```
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)