下面我将详细讲解如何实现“Java swing实现的计算器功能完整实例”。
简介
在介绍具体的实现方法之前,先简单介绍一下Java Swing。Swing是Java平台上的一组GUI(Graphical User Interface)构件库。它提供了一整套丰富的GUI构件,例如按钮、文本框、标签等。在Java中,通过将这些构件进行组合,就可以构建出各种各样的窗口和对话框。
本文的目标是使用Java Swing实现一个简单的计算器,可以完成加、减、乘、除的四则运算。
环境
在开始实现之前,先介绍一下需要用到的环境:
- JDK 8及以上版本
- Eclipse或者其他Java IDE
实现步骤
1. 创建GUI窗口
首先需要创建一个GUI窗口,这个窗口用于显示计算器的界面。其中需要包含一个文本框用于显示计算结果,以及多个按钮用于输入数字和运算符。
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class Calculator {
public static void main(String[] args) {
// 创建窗口
JFrame frame = new JFrame("Calculator");
// 设置大小和位置
frame.setSize(300, 400);
frame.setLocationRelativeTo(null);
// 设置窗口关闭时退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建文本框
JTextField textField = new JTextField();
frame.add(textField, "North");
// 创建按钮
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
// ...
JButton buttonAdd = new JButton("+");
JButton buttonSub = new JButton("-");
JButton buttonMul = new JButton("*");
JButton buttonDiv = new JButton("/");
JButton buttonEqual = new JButton("=");
// 将按钮添加到窗口
// ...
// 显示窗口
frame.setVisible(true);
}
}
2. 实现按钮点击事件
接下来需要实现按钮的点击事件,以便用户输入数字和运算符后能够计算结果。这里以实现加法为例,其他运算符也是类似的。
- 定义一个变量
result
用于存储计算结果 - 在加法按钮的点击事件中,获取文本框中的数字,将其转换为整数类型,然后加上
result
的值,最后将结果显示在文本框中
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class Calculator {
public static void main(String[] args) {
// ...
// 定义一个变量result用于存储计算结果
int result = 0;
// 创建按钮
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
// ...
JButton buttonAdd = new JButton("+");
JButton buttonSub = new JButton("-");
JButton buttonMul = new JButton("*");
JButton buttonDiv = new JButton("/");
JButton buttonEqual = new JButton("=");
// 在加法按钮的点击事件中,实现加法运算
buttonAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result += number;
textField.setText(Integer.toString(result));
}
});
// ...
// 将按钮添加到窗口
// ...
// 显示窗口
frame.setVisible(true);
}
}
3. 实现其他运算符
实现其他运算符的方法和实现加法的方法类似。以下是乘法的实现方法。
// 在乘法按钮的点击事件中,实现乘法运算
buttonMul.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result *= number;
textField.setText(Integer.toString(result));
}
});
4. 实现清零和等于功能
为了用户操作的方便,需要添加清零和等于功能。以下是实现方法。
// 创建清零按钮
JButton buttonClear = new JButton("C");
// 在清零按钮的点击事件中,将结果和表达式全部清零
buttonClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
result = 0;
textField.setText("");
}
});
// 创建等于按钮
JButton buttonEqual = new JButton("=");
// 在等于按钮的点击事件中,计算表达式的结果并显示在文本框中
buttonEqual.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
switch(operator) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
default:
break;
}
textField.setText(Integer.toString(result));
}
});
5. 完整代码
将以上实现方法整合起来,得到完整的Java Swing计算器实现代码如下。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
public class Calculator {
public static void main(String[] args) {
// 创建窗口
JFrame frame = new JFrame("Calculator");
// 设置大小和位置
frame.setSize(300, 400);
frame.setLocationRelativeTo(null);
// 设置窗口关闭时退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建文本框
JTextField textField = new JTextField();
frame.add(textField, "North");
// 创建按钮
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
JButton button5 = new JButton("5");
JButton button6 = new JButton("6");
JButton button7 = new JButton("7");
JButton button8 = new JButton("8");
JButton button9 = new JButton("9");
JButton button0 = new JButton("0");
JButton buttonAdd = new JButton("+");
JButton buttonSub = new JButton("-");
JButton buttonMul = new JButton("*");
JButton buttonDiv = new JButton("/");
JButton buttonClear = new JButton("C");
JButton buttonEqual = new JButton("=");
// 定义一个变量result用于存储计算结果
int result = 0;
// 在数字按钮的点击事件中,将数字添加到文本框中
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText(textField.getText() + "1");
}
});
// ...
// 在加法按钮的点击事件中,实现加法运算
buttonAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result += number;
textField.setText(Integer.toString(result));
}
});
// 在减法按钮的点击事件中,实现减法运算
buttonSub.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result -= number;
textField.setText(Integer.toString(result));
}
});
// 在乘法按钮的点击事件中,实现乘法运算
buttonMul.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result *= number;
textField.setText(Integer.toString(result));
}
});
// 在除法按钮的点击事件中,实现除法运算
buttonDiv.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
result /= number;
textField.setText(Integer.toString(result));
}
});
// 在清零按钮的点击事件中,将结果和表达式全部清零
buttonClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
result = 0;
textField.setText("");
}
});
// 在等于按钮的点击事件中,计算表达式的结果并显示在文本框中
buttonEqual.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(textField.getText());
switch(operator) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
default:
break;
}
textField.setText(Integer.toString(result));
}
});
// 将按钮添加到窗口
frame.add(button1, "Center");
frame.add(button2, "Center");
frame.add(button3, "Center");
frame.add(button4, "Center");
frame.add(button5, "Center");
frame.add(button6, "Center");
frame.add(button7, "Center");
frame.add(button8, "Center");
frame.add(button9, "Center");
frame.add(button0, "Center");
frame.add(buttonAdd, "Center");
frame.add(buttonSub, "Center");
frame.add(buttonMul, "Center");
frame.add(buttonDiv, "Center");
frame.add(buttonClear, "Center");
frame.add(buttonEqual, "Center");
// 显示窗口
frame.setVisible(true);
}
}
至此,Java Swing计算器的实现就完成了。可以将程序运行,尝试输入数字和运算符,然后得到结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java swing实现的计算器功能完整实例 - Python技术站