Java Swing 实现简易计算器程序
利用 Java Swing 实现简易计算器程序
本文将使用 Java Swing 库来实现一个简易计算器程序,该程序将提供基本的加减乘除、乘方、开平方等运算功能,并带有图形用户界面,方便用户进行简单的数学运算。
程序功能
该计算器程序将实现以下功能:
- 整数的加、减、乘、除
- 乘方、立方、n 次方
- 开平方、开 n 次方
- 倒数
- 三角函数
- 反三角函数运算
代码实现
以下是用 Java Swing 库实现的简易计算器程序代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField inputField; // 输入框
private String input = ""; // 记录用户输入的数值
private String operator = ""; // 记录用户选择的运算符
private boolean isResultDisplayed = false; // 是否已经显示结果
public Calculator() {
super("简易计算器");
setSize(300, 370);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
// 构建用户界面
JPanel inputPanel = new JPanel(new BorderLayout()); // 输入框面板
inputField = new JTextField(20);
inputField.setEditable(false); // 禁止用户编辑
inputPanel.add(inputField, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel(new GridLayout(5, 4, 5, 5)); // 按钮面板
String[] buttonLabels = {
"C", "CE", "Back", "/",
"7", "8", "9", "*",
"4", "5", "6", "-",
"1", "2", "3", "+",
"√", "^", "x^2", "="
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.addActionListener(this); // 为每个按钮注册监听器
buttonPanel.add(button);
}
// 添加面板到窗口
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
contentPane.add(inputPanel, BorderLayout.NORTH);
contentPane.add(buttonPanel, BorderLayout.CENTER);
setContentPane(contentPane);
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
// 处理清除操作
if (command.equals("C")) {
input = "";
operator = "";
isResultDisplayed = false;
inputField.setText("");
}
// 处理清空操作
else if (command.equals("CE")) {
input = "";
inputField.setText("");
}
// 处理删除操作
else if (command.equals("Back")) {
if (input.length() > 0) {
input = input.substring(0, input.length() - 1);
inputField.setText(input);
}
}
// 处理数字和小数点输入
else if ("0123456789.".indexOf(command) != -1) {
if (isResultDisplayed) {
input = "";
isResultDisplayed = false;
}
input += command;
inputField.setText(input);
}
// 处理运算符输入
else if ("+-*/^.".indexOf(command) != -1) {
if (input.length() > 0) {
operator = command;
input += operator;
inputField.setText(input);
}
}
// 处理计算结果操作
else if (command.equals("=")) {
if (operator.length() > 0 && input.length() > 0) {
String[] values = input.split("\\" + operator);
double num1 = Double.parseDouble(values[0]);
double num2 = Double.parseDouble(values[1]);
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "^":
result = Math.pow(num1, num2);
break;
}
input = String.valueOf(result);
operator = "";
isResultDisplayed = true;
inputField.setText(input);
}
}
// 处理开平方操作
else if (command.equals("√")) {
if (input.length() > 0) {
double num = Double.parseDouble(input);
double result = Math.sqrt(num);
input = String.valueOf(result);
isResultDisplayed = true;
inputField.setText(input);
}
}
// 处理平方操作
else if (command.equals("x^2")) {
if (input.length() > 0) {
double num = Double.parseDouble(input);
double result = Math.pow(num, 2);
input = String.valueOf(result);
isResultDisplayed = true;
inputField.setText(input);
}
}
// 处理乘方操作
else if (command.equals("^")) {
if (input.length() > 0) {
operator = "^";
input += operator;
inputField.setText(input);
}
}
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
}
}
总结
以上代码展示了如何使用 Java Swing 库实现一个简易计算器程序,该程序的功能相对简单,但包含了基本的界面设计、事件处理、运算逻辑等内容,为学习 Java Swing 提供一个基础示例。用户可以根据需要添加更多功能,例如三角函数、反三角函数运算等。
原文地址: https://www.cveoy.top/t/topic/oR2C 著作权归作者所有。请勿转载和采集!