Java swing实现的计算器功能完整实例

下面我将详细讲解如何实现“Java swing实现的计算器功能完整实例”。

简介

在介绍具体的实现方法之前,先简单介绍一下Java Swing。Swing是Java平台上的一组GUI(Graphical User Interface)构件库。它提供了一整套丰富的GUI构件,例如按钮、文本框、标签等。在Java中,通过将这些构件进行组合,就可以构建出各种各样的窗口和对话框。

本文的目标是使用Java Swing实现一个简单的计算器,可以完成加、减、乘、除的四则运算。

环境

在开始实现之前,先介绍一下需要用到的环境:

  • JDK 8及以上版本
  • Eclipse或者其他Java IDE

实现步骤

1. 创建GUI窗口

首先需要创建一个GUI窗口,这个窗口用于显示计算器的界面。其中需要包含一个文本框用于显示计算结果,以及多个按钮用于输入数字和运算符。

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Calculator {
  public static void main(String[] args) {
    // 创建窗口
    JFrame frame = new JFrame("Calculator");
    // 设置大小和位置
    frame.setSize(300, 400);
    frame.setLocationRelativeTo(null);
    // 设置窗口关闭时退出程序
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 创建文本框
    JTextField textField = new JTextField();
    frame.add(textField, "North");

    // 创建按钮
    JButton button1 = new JButton("1");
    JButton button2 = new JButton("2");
    JButton button3 = new JButton("3");
    // ...
    JButton buttonAdd = new JButton("+");
    JButton buttonSub = new JButton("-");
    JButton buttonMul = new JButton("*");
    JButton buttonDiv = new JButton("/");
    JButton buttonEqual = new JButton("=");

    // 将按钮添加到窗口
    // ...

    // 显示窗口
    frame.setVisible(true);
  }
}

2. 实现按钮点击事件

接下来需要实现按钮的点击事件,以便用户输入数字和运算符后能够计算结果。这里以实现加法为例,其他运算符也是类似的。

  • 定义一个变量result用于存储计算结果
  • 在加法按钮的点击事件中,获取文本框中的数字,将其转换为整数类型,然后加上result的值,最后将结果显示在文本框中
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Calculator {
  public static void main(String[] args) {
    // ...

    // 定义一个变量result用于存储计算结果
    int result = 0;

    // 创建按钮
    JButton button1 = new JButton("1");
    JButton button2 = new JButton("2");
    JButton button3 = new JButton("3");
    // ...
    JButton buttonAdd = new JButton("+");
    JButton buttonSub = new JButton("-");
    JButton buttonMul = new JButton("*");
    JButton buttonDiv = new JButton("/");
    JButton buttonEqual = new JButton("=");

    // 在加法按钮的点击事件中,实现加法运算
    buttonAdd.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        result += number;
        textField.setText(Integer.toString(result));
      }
    });

    // ...

    // 将按钮添加到窗口
    // ...

    // 显示窗口
    frame.setVisible(true);
  }
}

3. 实现其他运算符

实现其他运算符的方法和实现加法的方法类似。以下是乘法的实现方法。

// 在乘法按钮的点击事件中,实现乘法运算
buttonMul.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    int number = Integer.parseInt(textField.getText());
    result *= number;
    textField.setText(Integer.toString(result));
  }
});

4. 实现清零和等于功能

为了用户操作的方便,需要添加清零和等于功能。以下是实现方法。

// 创建清零按钮
JButton buttonClear = new JButton("C");
// 在清零按钮的点击事件中,将结果和表达式全部清零
buttonClear.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    result = 0;
    textField.setText("");
  }
});

// 创建等于按钮
JButton buttonEqual = new JButton("=");
// 在等于按钮的点击事件中,计算表达式的结果并显示在文本框中
buttonEqual.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    int number = Integer.parseInt(textField.getText());
    switch(operator) {
      case "+":
        result += number;
        break;
      case "-":
        result -= number;
        break;
      case "*":
        result *= number;
        break;
      case "/":
        result /= number;
        break;
      default:
        break;
    }
    textField.setText(Integer.toString(result));
  }
});

5. 完整代码

将以上实现方法整合起来,得到完整的Java Swing计算器实现代码如下。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class Calculator {
  public static void main(String[] args) {
    // 创建窗口
    JFrame frame = new JFrame("Calculator");
    // 设置大小和位置
    frame.setSize(300, 400);
    frame.setLocationRelativeTo(null);
    // 设置窗口关闭时退出程序
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 创建文本框
    JTextField textField = new JTextField();
    frame.add(textField, "North");

    // 创建按钮
    JButton button1 = new JButton("1");
    JButton button2 = new JButton("2");
    JButton button3 = new JButton("3");
    JButton button4 = new JButton("4");
    JButton button5 = new JButton("5");
    JButton button6 = new JButton("6");
    JButton button7 = new JButton("7");
    JButton button8 = new JButton("8");
    JButton button9 = new JButton("9");
    JButton button0 = new JButton("0");
    JButton buttonAdd = new JButton("+");
    JButton buttonSub = new JButton("-");
    JButton buttonMul = new JButton("*");
    JButton buttonDiv = new JButton("/");
    JButton buttonClear = new JButton("C");
    JButton buttonEqual = new JButton("=");

    // 定义一个变量result用于存储计算结果
    int result = 0;

    // 在数字按钮的点击事件中,将数字添加到文本框中
    button1.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        textField.setText(textField.getText() + "1");
      }
    });

    // ...

    // 在加法按钮的点击事件中,实现加法运算
    buttonAdd.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        result += number;
        textField.setText(Integer.toString(result));
      }
    });

    // 在减法按钮的点击事件中,实现减法运算
    buttonSub.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        result -= number;
        textField.setText(Integer.toString(result));
      }
    });

    // 在乘法按钮的点击事件中,实现乘法运算
    buttonMul.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        result *= number;
        textField.setText(Integer.toString(result));
      }
    });

    // 在除法按钮的点击事件中,实现除法运算
    buttonDiv.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        result /= number;
        textField.setText(Integer.toString(result));
      }
    });

    // 在清零按钮的点击事件中,将结果和表达式全部清零
    buttonClear.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        result = 0;
        textField.setText("");
      }
    });

    // 在等于按钮的点击事件中,计算表达式的结果并显示在文本框中
    buttonEqual.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        int number = Integer.parseInt(textField.getText());
        switch(operator) {
          case "+":
            result += number;
            break;
          case "-":
            result -= number;
            break;
          case "*":
            result *= number;
            break;
          case "/":
            result /= number;
            break;
          default:
            break;
        }
        textField.setText(Integer.toString(result));
      }
    });

    // 将按钮添加到窗口
    frame.add(button1, "Center");
    frame.add(button2, "Center");
    frame.add(button3, "Center");
    frame.add(button4, "Center");
    frame.add(button5, "Center");
    frame.add(button6, "Center");
    frame.add(button7, "Center");
    frame.add(button8, "Center");
    frame.add(button9, "Center");
    frame.add(button0, "Center");
    frame.add(buttonAdd, "Center");
    frame.add(buttonSub, "Center");
    frame.add(buttonMul, "Center");
    frame.add(buttonDiv, "Center");
    frame.add(buttonClear, "Center");
    frame.add(buttonEqual, "Center");

    // 显示窗口
    frame.setVisible(true);
  }
}

至此,Java Swing计算器的实现就完成了。可以将程序运行,尝试输入数字和运算符,然后得到结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java swing实现的计算器功能完整实例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java实现按键精灵的示例代码

    讲解Java实现按键精灵的示例代码的攻略如下: 环境准备 首先需要安装好Java,并安装相应的开发工具,比如Eclipse、IntelliJ IDEA等。同时需要引入按键精灵的Java API,一般情况下直接将其引入到项目中即可。 示例1:模拟键盘输入 按键精灵主要用于模拟用户键盘输入,因此我们首先要实现键盘输入。 在Java中,可以使用Robot类来模拟键…

    Java 2023年5月19日
    00
  • java中的取整与四舍五入方法实例

    Java中的取整与四舍五入方法实例 在Java中,常用的取整和四舍五入方法是Math.floor、Math.ceil、Math.round,本文将详细介绍这三个方法的用法和示例说明。 Math.floor Math.floor是向下取整,表示得到的最大整数。它的用法为:Math.floor(x),其中x为一个double类型的数。具体实现为删去小数部分,只保…

    Java 2023年5月26日
    00
  • java 键盘输入的多种实现方法

    关于“Java键盘输入的多种实现方法”的攻略,下面就给您详细介绍: 使用 Scanner 类的 next() 方法进行输入 Scanner 是一个内置于 JDK 的类,专门用于输入处理。首先需要导入 java.util.Scanner 类。 示例代码: import java.util.Scanner; public class KeyboardInputD…

    Java 2023年5月18日
    00
  • java实现的n*n矩阵求值及求逆矩阵算法示例

    1. 求矩阵的值 求n*n矩阵的值,需要使用行列式的计算方法,具体算法如下: 当矩阵为1*1时,其值即为该矩阵中的元素。 当矩阵为22时,其值为:a[1][1]a[2][2]-a[1][2]*a[2][1]。 当矩阵为n*n时,其值为:按矩阵的第一行、第一列、第二行、第二列等开始,按矩阵的行列式展开来求得。 具体来说,可以使用递归算法来求解矩阵的行列式。递归…

    Java 2023年5月19日
    00
  • java 8 lambda表达式中的异常处理操作

    下面是“Java 8 Lambda表达式中的异常处理操作”的详细攻略。 什么是Lambda表达式中的异常处理操作 在Java 8中,Lambda表达式是一种新的语言特性,可以将一个方法作为参数传递给另一个方法,从而实现更加简洁、灵活的编程方式。在使用Lambda表达式时,有时会出现异常问题,因此需要进行异常处理操作,以保证代码的健壮性。 Lambda表达式中…

    Java 2023年5月27日
    00
  • java开发SpringBoot参数校验过程示例教程

    下面我来详细讲解“Java开发Spring Boot参数校验过程示例教程”的完整攻略。 什么是参数校验 在Web开发中,为了保证数据的准确性和完整性,在接口中进行参数校验是一个很重要的环节。参数校验通常包括验证参数的格式、数据类型、取值范围等。 使用Spring Boot进行参数校验 Spring Boot提供了一种方便快捷的方式来进行参数校验。使用Spri…

    Java 2023年5月19日
    00
  • js创建jsonArray传输至后台及后台全面解析

    请看下面的攻略: 客户端(js)创建jsonArray并传输至服务端 创建jsonArray 1.定义一个空的jsonArray: var jsonArray = []; 2.向jsonArray中添加数据: var jsonArray = []; for (var i = 0; i < 3; i++) { var jsonObj = { name: …

    Java 2023年5月26日
    00
  • G1收集器的作用是什么?

    G1(Garbage First)收集器是一种面向服务端应用的垃圾收集器,它的主要作用是实现高效的垃圾回收和内存管理。G1收集器的使用攻略如下: 1. 简介 G1垃圾收集器主要用于处理大内存应用,其基础概念是将Java Heap划分为多个小区域(每个小区域大小为1MB到32MB不等),每个小区域包含了不同数量的Java对象,G1尽量快速回收这些小区域中的垃圾…

    Java 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部