21xrx.com
2024-12-27 20:27:24 Friday
登录
文章检索 我的文章 写文章
Java课程设计:开发简约计算器
2023-06-16 22:20:31 深夜i     --     --
Java 计算器 界面设计 表达式求值

在Java编程中,简单计算器是一个非常基础和必要的案例。本文将介绍如何利用Java语言开发一个简约计算器,包括实现基本的加减乘除操作和界面设计。

首先,我们需要创建一个Java项目,并新建一个Calculator类。在这个类中,我们可以定义一个main函数,用于启动我们的计算器应用程序。代码如下:


public class Calculator {

  public static void main(String[] args)

    // 启动计算器应用程序

  

}

接下来,我们需要实现简单的界面,包括一个显示器和一些数字和操作符按钮。我们可以使用Java Swing库来创建这个基本界面。代码如下:


import javax.swing.*;

import java.awt.*;

public class Calculator {

  public static void main(String[] args) {

    // 创建计算器窗口

    JFrame frame = new JFrame("Calculator");

    frame.setSize(300, 400);

    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    frame.setLayout(new BorderLayout());

    // 创建显示器面板

    JPanel displayPanel = new JPanel(new BorderLayout());

    JTextField displayField = new JTextField();

    displayField.setEditable(false);

    displayField.setHorizontalAlignment(JTextField.RIGHT);

    displayPanel.add(displayField, BorderLayout.CENTER);

    // 创建按钮面板

    JPanel buttonPanel = new JPanel(new GridLayout(4, 4, 5, 5));

    String[] buttonLabels = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};

    for (String label : buttonLabels) {

      JButton button = new JButton(label);

      buttonPanel.add(button);

    }

    // 将显示器面板和按钮面板添加到窗口中

    frame.add(displayPanel, BorderLayout.NORTH);

    frame.add(buttonPanel, BorderLayout.CENTER);

    // 显示计算器窗口

    frame.setVisible(true);

  }

}

现在我们已经实现了基本的界面,接下来我们需要处理数字和操作符的输入,并完成计算。我们可以使用Java的表达式求值库,例如MVEL或ScriptEngine,来实现这个功能。代码如下:


import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Calculator implements ActionListener {

  private JTextField displayField;

  private ScriptEngine engine;

  public Calculator() {

    // 创建计算器窗口

    JFrame frame = new JFrame("Calculator");

    frame.setSize(300, 400);

    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    frame.setLayout(new BorderLayout());

    // 创建显示器面板

    JPanel displayPanel = new JPanel(new BorderLayout());

    displayField = new JTextField();

    displayField.setEditable(false);

    displayField.setHorizontalAlignment(JTextField.RIGHT);

    displayPanel.add(displayField, BorderLayout.CENTER);

    // 创建按钮面板

    JPanel buttonPanel = new JPanel(new GridLayout(4, 4, 5, 5));

    String[] buttonLabels = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};

    for (String label : buttonLabels) {

      JButton button = new JButton(label);

      button.addActionListener(this);

      buttonPanel.add(button);

    }

    // 将显示器面板和按钮面板添加到窗口中

    frame.add(displayPanel, BorderLayout.NORTH);

    frame.add(buttonPanel, BorderLayout.CENTER);

    // 初始化表达式求值引擎

    engine = new ScriptEngineManager().getEngineByName("JavaScript");

    // 显示计算器窗口

    frame.setVisible(true);

  }

  @Override

  public void actionPerformed(ActionEvent e) {

    String command = e.getActionCommand();

    if (command.equals("=")) {

      try {

        String result = engine.eval(displayField.getText()).toString();

        displayField.setText(result);

      } catch (ScriptException ex) {

        ex.printStackTrace();

      }

    } else {

      displayField.setText(displayField.getText() + command);

    }

  }

  public static void main(String[] args) {

    new Calculator();

  }

}

现在我们已经完成了这个简约计算器的所有逻辑。用户可以点击数字和操作符按钮进行输入,然后点击“=”按钮来求出结果。整个界面非常简单,但却包含了基本的计算器功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复