21xrx.com
2025-03-29 06:11:56 Saturday
文章检索 我的文章 写文章
我很喜欢用Java语言编写一些小程序
2023-06-16 10:24:51 深夜i     6     0

我很喜欢用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制作简单的计算器”。

  
  

评论区

请求出错了