21xrx.com
2024-12-23 02:16:32 Monday
登录
文章检索 我的文章 写文章
我很喜欢用Java语言编写一些小程序
2023-06-16 10:24:51 深夜i     --     --

我很喜欢用Java语言编写一些小程序,今天我来分享一下如何利用Java制作一个简单的计算器。要实现这个功能,我们需要使用Java的GUI库,这里我选用了Swing。

首先,我们需要在Java中创建一个窗口,然后在窗口中添加按钮和文本框。当用户点击按钮时,程序会读取文本框中的内容,并将计算结果显示在文本框中。下面是我写的一个简单的例子:


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Calculator implements ActionListener {

  JFrame frame;

  JTextField textField;

  JButton[] numberButtons = new JButton[10];

  JButton[] functionButtons = new JButton[4];

  JButton addButton, subButton, mulButton, divButton;

  JButton decButton, equButton, delButton, clrButton;

  double num1 = 0, num2 = 0, result = 0;

  char operator;

  Calculator() {

    frame = new JFrame("Calculator");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(420, 550);

    frame.setLayout(null);

    textField = new JTextField();

    textField.setBounds(50, 25, 300, 50);

    textField.setFont(new Font("Arial", Font.PLAIN, 32));

    textField.setEditable(false);

    addButton = new JButton("+");

    subButton = new JButton("-");

    mulButton = new JButton("*");

    divButton = new JButton("/");

    decButton = new JButton(".");

    equButton = new JButton("=");

    delButton = new JButton("Delete");

    clrButton = new JButton("Clear");

    functionButtons[0] = addButton;

    functionButtons[1] = subButton;

    functionButtons[2] = mulButton;

    functionButtons[3] = divButton;

    decButton.addActionListener(this);

    equButton.addActionListener(this);

    delButton.addActionListener(this);

    clrButton.addActionListener(this);

    for (int i = 0; i < 10; i++) {

      numberButtons[i] = new JButton(String.valueOf(i));

      numberButtons[i].addActionListener(this);

    }

    for (int i = 0; i < 4; i++) {

      functionButtons[i].addActionListener(this);

    }

    delButton.setBounds(50, 430, 145, 50);

    clrButton.setBounds(205, 430, 145, 50);

    panel.setBounds(50, 100, 300, 300);

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

    for (int i = 1; i < 10; i++) {

      if (i == 4 || i == 7) {

        panel.add(functionButtons[count]);

        count++;

      }

      panel.add(numberButtons[i]);

    }

    panel.add(decButton);

    panel.add(numberButtons[0]);

    panel.add(equButton);

    panel.add(divButton);

    panel.add(mulButton);

    panel.add(subButton);

    panel.add(addButton);

    frame.add(panel);

    frame.add(delButton);

    frame.add(clrButton);

    frame.add(textField);

    frame.setVisible(true);

  }

  public static void main(String[] args) {

    Calculator calculator = new Calculator();

  }

  @Override

  public void actionPerformed(ActionEvent e) {

    for (int i = 0; i < 10; i++) {

      if (e.getSource() == numberButtons[i]) {

        textField.setText(textField.getText() + i);

      }

    }

    if (e.getSource() == decButton) {

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

    }

    if (e.getSource() == addButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '+';

      textField.setText("");

    }

    if (e.getSource() == subButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '-';

      textField.setText("");

    }

    if (e.getSource() == mulButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '*';

      textField.setText("");

    }

    if (e.getSource() == divButton) {

      num1 = Double.parseDouble(textField.getText());

      operator = '/';

      textField.setText("");

    }

    if (e.getSource() == equButton) {

      num2 = Double.parseDouble(textField.getText());

      switch (operator) {

        case '+':

          result = num1 + num2;

          break;

        case '-':

          result = num1 - num2;

          break;

        case '*':

          result = num1 * num2;

          break;

        case '/':

          result = num1 / num2;

          break;

      }

      textField.setText(String.valueOf(result));

      num1 = result;

    }

    if (e.getSource() == clrButton) {

      textField.setText("");

    }

    if (e.getSource() == delButton) {

      String text = textField.getText();

      textField.setText("");

      for (int i = 0; i < text.length() - 1; i++) {

        textField.setText(textField.getText() + text.charAt(i));

      }

    }

  }

}

在这个例子中,我定义了一个名为Calculator的类,在main()函数中创建了一个Calculator的对象。Calculator类继承了ActionListener接口,这使得我们可以在这个类中实现事件监听器。

在Calculator的构造函数中,我创建了一个名为frame的JFrame对象,并设置了窗口的标题、大小和布局。然后,我创建了用于显示计算结果和读取用户输入的JTextField文本框。

接下来,我创建了用于进行加、减、乘、除、小数点、等于、删除和清除操作的JButton对象,并将它们添加到一个名为panel的JPanel面板中。我设置了这个面板的布局,使得按钮按照4×4的网格排列。然后,我将这个面板和按钮添加到窗口中。

在actionPerformed()函数中,我检查用户点击了哪个按钮,并根据点击的按钮执行相应的操作。例如,如果用户点击了数字按钮,我将这个数字添加到文本框中。如果用户点击了加号按钮,我记录下用户输入的第一个数字并将操作符设置为加号。

这个计算器的功能很简单,但它可以展示一下如何使用Java编写一个GUI应用程序。如果你想深入了解Java的GUI开发,可以参考Java Swing教程。本篇文章的三个关键词是Java、Swing、计算器,文章标题为“利用Java制作简单的计算器”。

  
  

评论区

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