Java函数实现一个简单的计算器应用
发布时间:2023-06-01 20:42:16
本文将介绍如何使用Java函数,实现一个简单的计算器应用。本计算器支持加、减、乘、除四则运算和清除操作。用户输入表达式并点击计算按钮,计算器根据表达式计算结果并显示。以下是具体的实现步骤:
1. 创建Java项目和窗口
首先,在Eclipse中创建一个Java项目。然后,创建一个窗口并设置它的属性。为了简洁起见,本文将使用Swing库来创建窗口。
import javax.swing.JFrame;
public class Calculator extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public Calculator() {
super("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}
2. 创建界面元素
接下来,创建计算器界面所需的所有组件。计算器界面包括一个文本框用于输入表达式,数字和操作按钮。为了实现重用性和易扩展性,可以将所有的数字和操作符都放在一个数组中。
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame {
/**
*
*/
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", "C", "=", "/"
};
public Calculator() {
super("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
textField = new JTextField();
add(textField, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
buttons = new JButton[buttonLabels.length];
for (int i = 0; i < buttonLabels.length; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttonPanel.add(buttons[i]);
}
add(buttonPanel, BorderLayout.CENTER);
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}
3. 添加事件处理器
现在,为每个按钮添加事件处理器。每个数字按钮应该将数字添加到文本框中,每个操作符按钮应该将运算符添加到文本框中。等号按钮应该计算表达式并显示结果,清除按钮应该清除文本框中的内容。
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.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame {
/**
*
*/
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", "C", "=", "/"
};
private String currentOperator;
private double result;
private boolean calculated;
public Calculator() {
super("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
textField = new JTextField();
add(textField, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
buttons = new JButton[buttonLabels.length];
for (int i = 0; i < buttonLabels.length; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttonPanel.add(buttons[i]);
buttons[i].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String buttonLabel = e.getActionCommand();
switch (buttonLabel) {
case "C":
textField.setText("");
break;
case "=":
calculated = true;
calculate();
break;
case "+":
case "-":
case "*":
case "/":
currentOperator = buttonLabel;
if (calculated) {
textField.setText("");
} else {
calculate();
}
break;
default:
if (calculated) {
textField.setText("");
calculated = false;
}
textField.setText(textField.getText() + buttonLabel);
}
}
});
}
add(buttonPanel, BorderLayout.CENTER);
setVisible(true);
}
private void calculate() {
String expression = textField.getText();
String[] elements = expression.split(currentOperator);
double operand1 = Double.parseDouble(elements[0]);
double operand2 = Double.parseDouble(elements[1]);
switch (currentOperator) {
case "+":
result = operand1 + operand2;
break;
case "-":
result = operand1 - operand2;
break;
case "*":
result = operand1 * operand2;
break;
case "/":
result = operand1 / operand2;
break;
}
textField.setText(String.valueOf(result));
}
public static void main(String[] args) {
new Calculator();
}
}
4. 完成计算器应用
现在,计算器已经可以工作了。用户可以输入表达式并点击计算按钮,计算器会按照输入进行计算并显示结果。如果用户需要清除操作,可以点击清除按钮。
本文介绍了如何使用Java函数实现一个简单的计算器应用。通过这个例子,读者可以学习如何创建Java窗口、添加组件、使用事件处理器等基本技术。读者也可以增加更多的功能来扩展这个计算器应用。
