21xrx.com
2025-03-29 04:19:55 Saturday
文章检索 我的文章 写文章
JavaSwing实现简单计算器——代码案例
2023-06-15 09:34:08 深夜i     16     0
JavaSwing GUI 计算器

JavaSwing是Java平台的一个GUI(Graphical User Interface)工具包,可以帮助程序员快速构建带图形界面的应用程序。本文将以一个简单的计算器为例,介绍如何使用JavaSwing构建图形界面,并在其中实现简单的计算功能。

1. 创建JavaSwing项目

首先,在Eclipse或其他Java开发工具中创建一个Java项目,并在其中创建一个JavaSwing窗体。创建窗体可以通过在项目中新建一个JFrame类来实现。

import javax.swing.JFrame;
public class Calculator extends JFrame {
public Calculator() {
// 设置窗体标题和大小
setTitle("计算器");
setSize(300, 250);
// 设置关闭窗体时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// 创建并显示窗体
Calculator frame = new Calculator();
frame.setVisible(true);
}
}

上述代码创建了一个名为Calculator的窗体,并设置了其标题和大小。在main方法中创建并显示了该窗体。现在运行该程序,可以看到一个空白的窗体。

2. 在窗体中添加各种组件

接下来,我们需要在窗体中添加不同的组件,比如标签、文本框、按钮等,来实现计算器的各种功能。

2.1 添加标签和文本框

为了方便用户输入数字和显示计算结果,我们可以在窗体中添加两个文本框。我们可以使用JLabel和JTextField类来实现:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Calculator extends JFrame {
private JLabel label1;
private JTextField textField1;
private JLabel label2;
private JTextField textField2;
public Calculator() {
// 设置窗体标题和大小
setTitle("计算器");
setSize(300, 250);
// 设置关闭窗体时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建标签和文本框并添加到窗体
label1 = new JLabel("第一个数字:");
label1.setBounds(20, 30, 100, 20); // 设置标签位置和大小
add(label1);
textField1 = new JTextField("");
textField1.setBounds(110, 30, 150, 20); // 设置文本框位置和大小
add(textField1);
label2 = new JLabel("第二个数字:");
label2.setBounds(20, 80, 100, 20);
add(label2);
textField2 = new JTextField("");
textField2.setBounds(110, 80, 150, 20);
add(textField2);
}
public static void main(String[] args) {
// 创建并显示窗体
Calculator frame = new Calculator();
frame.setVisible(true);
}
}

在上述代码中,我们新建了一个JLabel和一个JTextField并设置其位置和大小,然后将它们添加到了窗体中。

2.2 添加按钮来实现计算功能

接下来,我们需要添加+、-、*、/四个按钮来实现加减乘除的功能,同时添加一个“=”按钮来显示计算结果。我们可以使用JButton类来实现:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Calculator extends JFrame {
private JLabel label1;
private JTextField textField1;
private JLabel label2;
private JTextField textField2;
private JButton buttonAdd;
private JButton buttonSub;
private JButton buttonMul;
private JButton buttonDiv;
private JButton buttonEqual;
public Calculator() {
// 设置窗体标题和大小
setTitle("计算器");
setSize(300, 250);
// 设置关闭窗体时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建标签和文本框并添加到窗体
label1 = new JLabel("第一个数字:");
label1.setBounds(20, 30, 100, 20);
add(label1);
textField1 = new JTextField("");
textField1.setBounds(110, 30, 150, 20);
add(textField1);
label2 = new JLabel("第二个数字:");
label2.setBounds(20, 80, 100, 20);
add(label2);
textField2 = new JTextField("");
textField2.setBounds(110, 80, 150, 20);
add(textField2);
// 创建按钮并添加到窗体
buttonAdd = new JButton("+");
buttonAdd.setBounds(20, 130, 40, 40);
add(buttonAdd);
buttonSub = new JButton("-");
buttonSub.setBounds(70, 130, 40, 40);
add(buttonSub);
buttonMul = new JButton("*");
buttonMul.setBounds(120, 130, 40, 40);
add(buttonMul);
buttonDiv = new JButton("/");
buttonDiv.setBounds(170, 130, 40, 40);
add(buttonDiv);
buttonEqual = new JButton("=");
buttonEqual.setBounds(220, 130, 40, 40);
add(buttonEqual);
}
public static void main(String[] args) {
// 创建并显示窗体
Calculator frame = new Calculator();
frame.setVisible(true);
}
}

在上述代码中,我们新建了五个按钮并设置了它们的位置和大小,然后将它们添加到了窗体中。

3. 实现计算功能

现在我们已经创建好了计算器界面,接下来需要实现其中的计算功能。我们可以为每个按钮添加一个事件监听器,根据用户输入的内容来执行计算操作。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Calculator extends JFrame {
private JLabel label1;
private JTextField textField1;
private JLabel label2;
private JTextField textField2;
private JButton buttonAdd;
private JButton buttonSub;
private JButton buttonMul;
private JButton buttonDiv;
private JButton buttonEqual;
public Calculator() {
// 设置窗体标题和大小
setTitle("计算器");
setSize(300, 250);
// 设置关闭窗体时退出程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建标签和文本框并添加到窗体
label1 = new JLabel("第一个数字:");
label1.setBounds(20, 30, 100, 20);
add(label1);
textField1 = new JTextField("");
textField1.setBounds(110, 30, 150, 20);
add(textField1);
label2 = new JLabel("第二个数字:");
label2.setBounds(20, 80, 100, 20);
add(label2);
textField2 = new JTextField("");
textField2.setBounds(110, 80, 150, 20);
add(textField2);
// 创建按钮并添加到窗体,并为每个按钮添加事件监听器
buttonAdd = new JButton("+");
buttonAdd.setBounds(20, 130, 40, 40);
buttonAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double result = num1 + num2;
textField1.setText(String.valueOf(result));
textField2.setText("");
}
});
add(buttonAdd);
buttonSub = new JButton("-");
buttonSub.setBounds(70, 130, 40, 40);
buttonSub.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double result = num1 - num2;
textField1.setText(String.valueOf(result));
textField2.setText("");
}
});
add(buttonSub);
buttonMul = new JButton("*");
buttonMul.setBounds(120, 130, 40, 40);
buttonMul.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double result = num1 * num2;
textField1.setText(String.valueOf(result));
textField2.setText("");
}
});
add(buttonMul);
buttonDiv = new JButton("/");
buttonDiv.setBounds(170, 130, 40, 40);
buttonDiv.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double result = num1 / num2;
textField1.setText(String.valueOf(result));
textField2.setText("");
}
});
add(buttonDiv);
buttonEqual = new JButton("=");
buttonEqual.setBounds(220, 130, 40, 40);
buttonEqual.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double result = num1 + num2;
textField1.setText(String.valueOf(result));
textField2.setText("");
}
});
add(buttonEqual);
}
public static void main(String[] args) {
// 创建并显示窗体
Calculator frame = new Calculator();
frame.setVisible(true);
}
}

在上述代码中,我们为每个按钮添加了一个事件监听器,并在其中根据用户输入的数字来执行加、减、乘、除操作,并将结果显示在第一个文本框中。

4. 测试程序

现在已经完成了JavaSwing计算器程序的编写,我们可以对其进行测试。运行程序,输入两个数字,点击不同的按钮,可以看到计算器成功实现了加、减、乘、除的功能。

关键词:

JavaSwing、GUI、计算器

  
  

评论区

请求出错了