21xrx.com
2024-11-08 22:14:42 Friday
登录
文章检索 我的文章 写文章
JavaSwing实现简单计算器——代码案例
2023-06-15 09:34:08 深夜i     --     --
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、计算器

  
  

评论区

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