用java设计和编写一个带小数点的计算器:实现计算器的界面;实现计算按钮不同的计算功能;显示计算器按钮运算后的结果。
时间: 2024-02-19 18:57:59 浏览: 155
利用java的计算器设计
4星 · 用户满意度95%
好的,这是一个比较复杂的问题,需要涉及到Java Swing的知识,我会尽力回答你的问题。
首先,我们需要设计计算器的界面,可以使用Java Swing的组件来实现。以下是一个简单的界面设计:
```java
import javax.swing.*;
import java.awt.*;
public class CalculatorUI {
private JFrame frame;
private JPanel panel;
private JTextField resultField;
private JButton button1, button2, button3, buttonAdd, button4, button5, button6, buttonSubtract, button7, button8, button9, buttonMultiply, button0, buttonDecimal, buttonEquals, buttonDivide;
public CalculatorUI() {
frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(250, 300);
frame.setLocationRelativeTo(null);
panel = new JPanel(new GridLayout(4, 4));
resultField = new JTextField();
resultField.setEditable(false);
panel.add(resultField);
button7 = new JButton("7");
panel.add(button7);
button8 = new JButton("8");
panel.add(button8);
button9 = new JButton("9");
panel.add(button9);
buttonDivide = new JButton("/");
panel.add(buttonDivide);
button4 = new JButton("4");
panel.add(button4);
button5 = new JButton("5");
panel.add(button5);
button6 = new JButton("6");
panel.add(button6);
buttonMultiply = new JButton("*");
panel.add(buttonMultiply);
button1 = new JButton("1");
panel.add(button1);
button2 = new JButton("2");
panel.add(button2);
button3 = new JButton("3");
panel.add(button3);
buttonSubtract = new JButton("-");
panel.add(buttonSubtract);
button0 = new JButton("0");
panel.add(button0);
buttonDecimal = new JButton(".");
panel.add(buttonDecimal);
buttonEquals = new JButton("=");
panel.add(buttonEquals);
buttonAdd = new JButton("+");
panel.add(buttonAdd);
frame.add(panel);
frame.setVisible(true);
}
}
```
上述代码创建了一个计算器的界面,包含一个文本框和16个按钮,其中10个按钮代表数字0-9,另外6个按钮代表加、减、乘、除、小数点和等于号。
接下来,我们需要实现计算器的逻辑,即当用户点击不同的按钮时,计算器应该执行不同的计算操作,并将结果显示在文本框中。以下是一个可能的实现:
```java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator implements ActionListener {
private CalculatorUI ui;
private double currentValue = 0;
private double previousValue = 0;
private String operator = "";
private boolean decimalClicked = false;
public Calculator() {
ui = new CalculatorUI();
addListeners();
}
private void addListeners() {
ui.button0.addActionListener(this);
ui.button1.addActionListener(this);
ui.button2.addActionListener(this);
ui.button3.addActionListener(this);
ui.button4.addActionListener(this);
ui.button5.addActionListener(this);
ui.button6.addActionListener(this);
ui.button7.addActionListener(this);
ui.button8.addActionListener(this);
ui.button9.addActionListener(this);
ui.buttonAdd.addActionListener(this);
ui.buttonSubtract.addActionListener(this);
ui.buttonMultiply.addActionListener(this);
ui.buttonDivide.addActionListener(this);
ui.buttonDecimal.addActionListener(this);
ui.buttonEquals.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
String buttonText = ((JButton) e.getSource()).getText();
if (buttonText.equals("+") || buttonText.equals("-") || buttonText.equals("*") || buttonText.equals("/")) {
operator = buttonText;
previousValue = currentValue;
currentValue = 0;
ui.resultField.setText("");
decimalClicked = false;
} else if (buttonText.equals(".")) {
decimalClicked = true;
} else if (buttonText.equals("=")) {
if (operator.equals("+")) {
currentValue = previousValue + currentValue;
} else if (operator.equals("-")) {
currentValue = previousValue - currentValue;
} else if (operator.equals("*")) {
currentValue = previousValue * currentValue;
} else if (operator.equals("/")) {
currentValue = previousValue / currentValue;
}
ui.resultField.setText(Double.toString(currentValue));
decimalClicked = false;
} else {
if (decimalClicked) {
currentValue = Double.parseDouble(ui.resultField.getText() + buttonText);
} else {
currentValue = Double.parseDouble(ui.resultField.getText() + buttonText);
}
ui.resultField.setText(Double.toString(currentValue));
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
}
}
```
上述代码实现了一个简单的计算器逻辑,使用了ActionListener来监听按钮的点击事件。当用户点击数字按钮时,程序会将数字添加到文本框中;当用户点击运算符按钮时,程序会记录当前输入的值和运算符,并清空文本框;当用户点击等于号时,程序会根据之前记录的值和运算符计算结果,并将结果显示在文本框中。
以上就是一个简单的带小数点的计算器的设计和实现过程。希望对你有帮助!
阅读全文