21xrx.com
2025-03-25 08:34:44 Tuesday
文章检索 我的文章 写文章
Java实现简易计算器:从界面设计到代码实现
2023-06-15 16:17:16 深夜i     --     --
Java 简易计算器 Swing JButton 动作监听器 数据类型 完整代码案例 可压缩下载

    return c == '+' || c == '-' || c == '*' || c == '/';

Java作为一门强类型语言,在编写计算器程序时体现了其强大的计算和运算能力。本文将为大家介绍如何在Java中设计并实现一个简单的计算器,同时提供可压缩下载的完整代码案例。

一、界面设计

Java的Swing组件提供了丰富多样的界面设计工具,我们可以借助这些组件设计出美观、简洁的计算器界面。下面是一个简单的示例:

![](https://cdn.nlark.com/yuque/0/2021/png/22261788/1626881023959-b4082b4e-9c7b-4845-989c-d40560eec727.png)

在这个界面中,我们使用了多个JButton按钮,通过代码实现对这些按钮的响应操作,实现计算器功能。

二、代码实现

对于计算器程序,需要实现各种基本的数学运算,例如加、减、乘、除等。下面是Java代码实现简单计算器的功能:

package calculator;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame implements ActionListener {
  private static final long serialVersionUID = 1L;
  private Container container;
  private JPanel panel;
  private JTextField result;
  private Icon[] icon = new ImageIcon[16];
  private JButton[] button = new JButton[16];
  private String[] name = {"1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "*", ".", "0", "=", "/"};
  private String[] func = "num";
  public Calculator() {
    super("Calculator");
    this.initIcon();
    this.initComponent();
    this.addActionListen();
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(228, 270);
    this.setResizable(false);
  }
  private void initIcon() {
    for (int i = 0; i < 16; i++) {
      icon[i] = new ImageIcon("lib//" + i + ".png");
    }
  }
  private void initComponent() {
    container = this.getContentPane();
    panel = new JPanel(new GridLayout(4, 4, 3, 3));
    result = new JTextField("");
    result.setHorizontalAlignment(JTextField.RIGHT);
    for (int i = 0; i < 16; i++) {
      button[i] = new JButton(name[i], icon[i]);
      button[i].setActionCommand(func[i]);
    }
    for (int i = 0; i < 16; i++) {
      panel.add(button[i]);
    }
    container.add(result, BorderLayout.NORTH);
    container.add(panel, BorderLayout.CENTER);
  }
  private void addActionListen() {
    for (int i = 0; i < 16; i++)
      button[i].addActionListener(this);
  }
  private boolean isOperator(char c) {
    return c == '+' || c == '-' || c == '*' || c == '/';
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if (cmd.equals("num")) {
      result.setText(result.getText() + e.getSource());
    } else if (cmd.equals("oper")) {
      result.setText(result.getText() + e.getSource());
    } else if (cmd.equals("equ")) {
      String text = result.getText();
      if (text.equals("") || text == null)
        return;
      
      String s1 = "", s2 = "";
      char flag = ' ';
      for (int i = 0; i < text.length(); i++) {
        char c = text.charAt(i);
        if (isOperator(c)) {
          flag = c;
          s1 = text.substring(0, i);
          s2 = text.substring(i + 1);
        }
      }
      double d1 = Double.parseDouble(s1);
      double d2 = Double.parseDouble(s2);
      double resultValue = 0;
      if (flag == '+') {
        resultValue = d1 + d2;
      } else if (flag == '-')
        resultValue = d1 - d2;
       else if (flag == '*') {
        resultValue = d1 * d2;
      } else if (flag == '/') {
        if (d2 != 0)
          resultValue = d1 / d2;
         else {
          result.setText("");
          return;
        }
      }
      result.setText(resultValue + "");
    }
  }
  public static void main(String[] args) {
    new Calculator();
  }
}

本例是一个继承自JFrame的类Calculator,通过继承JFrame类,我们打造了一个完整的窗口,并实现了计算器的基本功能。其中,我们通过使用多个JButton按钮和动作监听器实现了计算器按钮的响应操作,通过使用String、Char等数据类型实现了计算器的基础计算功能。 在addActionListen方法中,我们实现了JButton按钮的监视器的注册监听,为每个按钮添加了监听器。在actionPerformed方法中,我们对每个监听器的按钮被按下后进行全部处理,这里主要是实现按钮的意义判断与计算。

三、代码案例下载

如果你想下载本文中所示的Java简易计算器的完整代码,可以访问:https://github.com/alexlin1024/calculator。下载完整代码后,你可以进行源代码或可执行程序的测试、编译和修改。

四、关键词

Java、简易计算器、Swing、JButton、动作监听器、数据类型、完整代码案例、可压缩下载。

  
  

评论区

    相似文章