21xrx.com
2024-11-22 11:50:18 Friday
登录
文章检索 我的文章 写文章
Java编写计算器界面 - 从入门到实现
2023-06-19 10:44:40 深夜i     --     --
Java编程 GUI设计 计算器应用

在现代科技的社会中,计算器已成为现代人们必需的工具之一。为了学习Java编程,我们可以编写一个基于Java的计算器界面。在这篇文章中,我们将一步步的展示如何设计和实现一个基础的计算器应用。

第一步,我们需要实现一个基础的GUI界面。Java提供了许多GUI库,但我们在这里选择使用Swing框架。Swing是一个Java的GUI库,它可以让我们轻松地开发出具有高性能和美观的Java应用程序。

让我们来看一下如何通过Swing框架来实现一个简单的计算器。首先,我们需要建立一个包含计算器结构的布局。我们可以使用Java的GridLayout来实现。接下来,我们需要为每个按钮分配一个事件处理程序。

实现Java计算器界面的核心代码:

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calculator {

  private JFrame frame;

  private JPanel panel;

  private JTextField textfield;

  private JButton[] buttons;

  private String[] labels = {"7", "8", "9", "+",

                "4", "5", "6", "-",

                "1", "2", "3", "*",

                "0", ".", "=", "/"};

  public Calculator() {

    init();

  }

  private void init() {

    frame = new JFrame("Calculator");

    textfield = new JTextField(20);

    panel = new JPanel();

    textfield.setHorizontalAlignment(JTextField.RIGHT);

    panel.setLayout(new GridLayout(4, 4, 5, 5));

    buttons = new JButton[16];

    for(int i = 0; i < labels.length; i++) {

      buttons[i] = new JButton(labels[i]);

      buttons[i].addActionListener(new CalculatorListener());

    }

    for(int i = 0; i < labels.length; i++) {

      panel.add(buttons[i]);

    }

    frame.add(textfield, BorderLayout.NORTH);

    frame.add(panel, BorderLayout.CENTER);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.pack();

    frame.setVisible(true);

  }

  private class CalculatorListener implements ActionListener {

    public void actionPerformed(ActionEvent e) {

      String command = e.getActionCommand();

      if("0123456789.".indexOf(command) != -1) {

        if(isFirstDigit) {

          textfield.setText(command);

          isFirstDigit = false;

        } else if(command.equals(".") && textfield.getText().indexOf(".") == -1) {

          textfield.setText(textfield.getText() + ".");

        } else {

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

        }

      } else {

        if(isFirstDigit) {

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

            textfield.setText(command);

            isFirstDigit = false;

          } else operation = command;

        } else {

          double x = Double.parseDouble(textfield.getText());

          calculate(x);

          operation = command;

          isFirstDigit = true;

        }

      }

    }

    private void calculate(double n) {

      if(operation.equals("+")) {

        result += n;

      } else if(operation.equals("-"))

        result -= n;

       else if(operation.equals("*")) {

        result *= n;

      } else if(operation.equals("/"))

        result /= n;

       else if(operation.equals("="))

        result += n;

      textfield.setText("" + result);

    }

  }

  private boolean isFirstDigit = true;

  private String operation = "=";

  private double result = 0.0;

  public static void main(String[] args) {

    new Calculator();

  }

}

这段代码中,我们首先创建了一个Calculator类,这个类继承了JFrame类,并实现了ActionListener接口。然后,我们使用Swing框架创建了一个能够显示在屏幕上的GUI组件,并通过按钮来处理用户的输入。

当用户按下一个按钮时,计算器将根据按钮的标签(如:数字或运算符)来识别输入,并在文本框中显示相应的结果。为了实现这一点,我们需要在Code Listener类中编写处理代码。

在这个类中,我们使用了result,double operation,boolean isFirstDigit这些变量来储存用户的输入相关的信息,并在用户按下“=”按钮时计算结果。

三个关键词:

Java编程,GUI设计,计算器应用。

  
  

评论区

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