Java swing简易计算器C的功能
时间: 2024-05-02 21:17:33 浏览: 126
java swing 计算器
Java Swing简易计算器可以实现以下功能:
1. 加法、减法、乘法、除法等基本运算;
2. 小数点输入和计算;
3. 正负数输入和计算;
4. 百分号计算;
5. 清除输入和计算结果;
6. 显示输入和计算结果。
以下是一个简单的Java Swing计算器的代码示例:
```java
import javax.swing.*;
import java.awt.*;
public class Calculator extends JFrame {
private JTextField display;
public Calculator() {
// 设置窗口标题
setTitle("Calculator");
// 创建面板
JPanel panel = new JPanel(new GridLayout(4, 4));
// 创建数字按钮和运算符按钮
createButton("7", panel);
createButton("8", panel);
createButton("9", panel);
createButton("/", panel);
createButton("4", panel);
createButton("5", panel);
createButton("6", panel);
createButton("*", panel);
createButton("1", panel);
createButton("2", panel);
createButton("3", panel);
createButton("-", panel);
createButton("0", panel);
createButton(".", panel);
createButton("+/-", panel);
createButton("+", panel);
createButton("C", panel);
createButton("=", panel);
// 创建显示框
display = new JTextField("0");
display.setHorizontalAlignment(JTextField.RIGHT);
display.setEditable(false);
// 将面板和显示框添加到窗口
add(display, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
// 设置窗口大小和位置
setSize(300, 300);
setLocationRelativeTo(null);
// 设置窗口关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// 创建按钮
private void createButton(String text, JPanel panel) {
JButton button = new JButton(text);
button.addActionListener(e -> buttonClicked(text));
panel.add(button);
}
// 处理按钮点击事件
private void buttonClicked(String text) {
String displayText = display.getText();
switch (text) {
case "C":
display.setText("0");
break;
case "+/-":
if (displayText.startsWith("-")) {
display.setText(displayText.substring(1));
} else {
display.setText("-" + displayText);
}
break;
case "+":
case "-":
case "*":
case "/":
display.setText(displayText + text);
break;
case ".":
if (!displayText.contains(".")) {
display.setText(displayText + ".");
}
break;
case "=":
try {
String result = evaluate(displayText);
display.setText(result);
} catch (Exception ex) {
display.setText("Error");
}
break;
default:
if (displayText.equals("0")) {
display.setText(text);
} else {
display.setText(displayText + text);
}
break;
}
}
// 计算表达式的值
private String evaluate(String expression) {
ExpressionEvaluator evaluator = new ExpressionEvaluator();
return Double.toString(evaluator.evaluate(expression));
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
}
}
class ExpressionEvaluator {
public double evaluate(String expression) {
String[] tokens = expression.split("(?=[+\\-*/])|(?<=[+\\-*/])");
double result = Double.parseDouble(tokens[0]);
String operator = "+";
for (int i = 1; i < tokens.length; i++) {
if (isOperator(tokens[i])) {
operator = tokens[i];
} else {
double operand = Double.parseDouble(tokens[i]);
switch (operator) {
case "+":
result += operand;
break;
case "-":
result -= operand;
break;
case "*":
result *= operand;
break;
case "/":
result /= operand;
break;
}
}
}
return result;
}
private boolean isOperator(String token) {
return "+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token);
}
}
```
运行以上程序,即可得到一个简单的Java Swing计算器。
阅读全文