Java计算器的实现可以分为几个步骤,包括界面设计、事件监听以及逻辑处理,下面将详细地介绍如何使用Java Swing库创建一个简单的图形用户界面(GUI)计算器。
(图片来源网络,侵删)
1. 环境准备
在开始之前,确保你的开发环境已经安装了Java Development Kit (JDK),你还需要一个好的集成开发环境(IDE),比如IntelliJ IDEA或Eclipse来编写和运行代码。
2. 创建项目
在IDE中创建一个新的Java项目,并创建一个新类,命名为Calculator
。
3. 导入Swing库
Swing是Java的一个图形用户界面工具集,用于构建应用程序的GUI,为了使用Swing,你需要在类的开头导入以下包:
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
4. 设计界面
我们将使用Swing组件来设计计算器的界面,以下是创建基本界面的步骤:
设置框架属性
添加按钮和文本框
设置框架属性
我们需要创建一个JFrame
对象作为主窗口,并设置其基本属性:
- public class Calculator {
- private JFrame frame;
- // ...
- public void createAndShowGUI() {
- frame = new JFrame("Java Calculator");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(300, 400);
- // ...
- }
- }
添加按钮和文本框
接下来,我们要添加文本框和按钮到JFrame
中:
- public class Calculator {
- // ...
- private JTextField textField;
- private JButton[] numberButtons = new JButton[10];
- private JButton addButton, subButton, mulButton, divButton, equalButton, clearButton;
- // ...
- public void createAndShowGUI() {
- // ...
- textField = new JTextField();
- frame.add(textField, BorderLayout.NORTH);
- JPanel panel = new JPanel();
- panel.setLayout(new GridLayout(4, 4));
- for (int i = 0; i < 10; i++) {
- numberButtons[i] = new JButton(String.valueOf(i));
- panel.add(numberButtons[i]);
- }
- addButton = new JButton("+");
- subButton = new JButton("");
- mulButton = new JButton("*");
- divButton = new JButton("/");
- equalButton = new JButton("=");
- clearButton = new JButton("Clear");
- panel.add(addButton);
- panel.add(subButton);
- panel.add(mulButton);
- panel.add(divButton);
- panel.add(equalButton);
- panel.add(clearButton);
- frame.add(panel, BorderLayout.CENTER);
- // ...
- }
- }
5. 事件监听与处理
为了让计算器工作,我们需要为每个按钮添加事件监听器,并为相应的事件定义行为,当用户点击数字按钮时,应该在文本框中显示该数字。
我们可以为每个按钮添加一个ActionListener
:
- public class Calculator {
- // ...
- private ActionListener buttonListener = new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- for (int i = 0; i < numberButtons.length; i++) {
- if (e.getSource() == numberButtons[i]) {
- textField.setText(textField.getText() + i);
- return;
- }
- }
- if (e.getSource() == clearButton) {
- textField.setText("");
- } else if (e.getSource() == addButton) {
- // handle addition operation
- } // ... handle other operations similarly
- }
- };
- // ...
- public void createAndShowGUI() {
- // ...
- for (int i = 0; i < numberButtons.length; i++) {
- numberButtons[i].addActionListener(buttonListener);
- }
- addButton.addActionListener(buttonListener);
- subButton.addActionListener(buttonListener);
- mulButton.addActionListener(buttonListener);
- divButton.addActionListener(buttonListener);
- equalButton.addActionListener(buttonListener);
- clearButton.addActionListener(buttonListener);
- // ...
- }
- }
6. 完善逻辑
我们需要完善按钮的逻辑部分,以执行基本的算术操作,这包括解析表达式、计算结果,并将结果显示在文本框中。
- public class Calculator {
- // ...
- private double computeResult(double firstOperand, double secondOperand, char operator) {
- switch (operator) {
- case '+': return firstOperand + secondOperand;
- case '': return firstOperand secondOperand;
- case '*': return firstOperand * secondOperand;
- case '/': return firstOperand / secondOperand;
- default: throw new IllegalArgumentException("Invalid operator");
- }
- }
- // ...
- private ActionListener buttonListener = new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- // ... previous code ...
- else if (e.getSource() == equalButton) {
- try {
- String[] parts = textField.getText().split("\\s*=\\s*");
- if (parts.length != 2) throw new IllegalStateException("Invalid expression");
- double firstOperand = Double.parseDouble(parts[0]);
- double secondOperand = Double.parseDouble(parts[1]);
- char operator = '+'; // default operator
- if (parts[0].contains("")) operator = '';
- else if (parts[0].contains("*")) operator = '*';
- else if (parts[0].contains("/")) operator = '/';
- double result = computeResult(firstOperand, secondOperand, operator);
- textField.setText(String.valueOf(result));
- } catch (NumberFormatException | IllegalStateException ex) {
- textField.setText("Error");
- }
- }
- }
- };
- // ...
- }
7. 运行程序
完成以上步骤后,你可以运行程序来测试计算器是否按预期工作,在IDE中通常有一个运行按钮可以直接启动你的程序。
总结
以上就是制作一个简单的Java计算器的全过程,当然,还有很多可以改进的地方,比如错误处理、输入验证、更复杂的数学运算等,但本教程提供了一个基础的框架,你可以在此基础上继续扩展和完善你的计算器应用。
评论一下?