1. 使用swing组件设计,参照windows标准计算器功能,实现加、减、乘、除等运算。Java写
时间: 2024-11-15 09:21:03 浏览: 1
这是一个使用Java Swing库编写的简单计算器应用程序,它模仿Windows标准计算器的功能,允许用户进行基本的四则运算。以下是核心部分的概述:
首先,导入必要的Java Swing库,然后创建一个`Calculator`类,继承自`JFrame`,作为窗口的主体。在这个类里,我们将设置窗口标题、大小、关闭选项,以及布局管理器。
接着,我们创建一个`TextField`用于显示计算结果,一个`JPanel`用于放置按钮,按钮上标注数字、运算符和等号。每个按钮都有一个动作监听器,当用户点击时,会触发对应的事件处理器方法。
`ButtonListener`内部类负责响应按钮点击。对于数字和小数点按钮,添加数字到当前值;对于运算符按钮,存储运算符和清除旧数值;对于等号按钮,执行计算并更新显示。
在`calculate()`方法中,根据输入的运算符执行加、减、乘、除操作,处理除数为零的情况。如果输入的是非法运算符,可以捕获异常或抛出一个错误提示。
`main`方法中,使用Swing的`EventQueue.invokeLater()`来保证UI线程的安全启动。
总的来说,这个计算器项目演示了如何利用Swing组件构建交互式界面,并结合事件驱动的方式来实现基本的算术计算。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame {
// ...
private JTextField displayField;
private JButton[] buttons;
private char currentOperator;
private double firstOperand = 0.0;
// ...省略部分代码...
private void createButtons() {
buttons = new JButton[16];
// 初始化按钮数组...
}
private void actionPerformed(ActionEvent e) {
String buttonText = ((JButton)e.getSource()).getText();
if (buttonText.equals("+") || buttonText.equals("-") || buttonText.equals("*") || buttonText.equals("/")) {
// 处理运算符...
} else if (buttonText.equals("=")) {
// 执行计算...
}
}
private double calculate(double operand) {
double result;
try {
// 根据当前运算符进行计算...
} catch (ArithmeticException ex) {
JOptionPane.showMessageDialog(this, "Cannot divide by zero", "Error", JOptionPane.ERROR_MESSAGE);
return Double.NaN;
}
return result;
}
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
Calculator calculator = new Calculator();
calculator.setVisible(true);
});
}
}
```
阅读全文