运用图形化界面编写一个简易的计算器程序,实现加减乘除运算。
时间: 2024-12-29 21:33:26 浏览: 8
创建一个简单的图形化计算器程序通常涉及使用Java GUI库,如Swing或JavaFX。这里我会简要介绍如何使用Swing来构建一个基本的四则运算计算器。
首先,确保你已经导入了所需的Swing包:
```java
import javax.swing.*;
import java.awt.*;
```
然后,你可以定义一个Calculator类,包含文本框、按钮和其他必要的组件:
```java
public class Calculator extends JFrame {
private JTextField inputField;
private JButton addButton, subtractButton, multiplyButton, divideButton;
private JLabel resultLabel;
// 构造函数
public Calculator() {
setTitle("Simple Calculator");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建布局管理器
setLayout(new GridLayout(5, 2));
// 创建输入字段
inputField = new JTextField();
add(inputField);
// 创建运算按钮并设置事件监听器
addButton = new JButton("+");
addButton.addActionListener(e -> performOperation("+", inputField.getText(), resultLabel));
add(addButton);
subtractButton = new JButton("-");
subtractButton.addActionListener(e -> performOperation("-", inputField.getText(), resultLabel));
add(subtractButton);
multiplyButton = new JButton("*");
multiplyButton.addActionListener(e -> performOperation("*", inputField.getText(), resultLabel));
add(multiplyButton);
divideButton = new JButton("/");
divideButton.addActionListener(e -> performOperation("/", inputField.getText(), resultLabel));
add(divideButton);
// 创建结果显示区域
resultLabel = new JLabel("Result:");
add(resultLabel);
// 其他逻辑(如清除按钮,处理异常等)可在此处添加
setVisible(true);
}
private void performOperation(String operator, String num, JLabel label) {
try {
int result = Integer.parseInt(num) switch (operator) {
case "+":
return Integer.parseInt(num) + Integer.parseInt(label.getText());
case "-":
return Integer.parseInt(num) - Integer.parseInt(label.getText());
case "*":
return Integer.parseInt(num) * Integer.parseInt(label.getText());
case "/":
if (Integer.parseInt(label.getText()) != 0)
return Integer.parseInt(num) / Integer.parseInt(label.getText());
else
throw new ArithmeticException("Division by zero is not allowed.");
default:
throw new IllegalArgumentException("Invalid operator.");
}
label.setText(Integer.toString(result));
} catch (NumberFormatException | ArithmeticException e) {
label.setText("Error: " + e.getMessage());
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Calculator());
}
}
```
在这个例子中,我们创建了一个JFrame窗口,包含一个文本框(用于显示当前的操作数),以及四个按钮对应加减乘除操作。当用户点击按钮时,`performOperation` 方法会被调用,根据传入的运算符执行相应的计算,并更新结果标签。
阅读全文