Java Swing 计算器程序开发实验
Java Swing 计算器程序开发实验
实验要求
编写一个应用程序,有一个标题为'计算'的窗口,窗口的布局为 FlowLayout 布局。
设计四个按钮,分别命名为'加'、'差'、'积'、'除';
另外,窗口中还有三个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果内容:
实验思路
- 创建一个 JFrame 窗口,设置标题为'计算',并设置布局为 FlowLayout 布局。
- 创建三个 JTextField 文本框,用于输入数字和显示结果。
- 创建四个 JButton 按钮,分别命名为'加'、'差'、'积'、'除',并添加点击事件。
- 在点击事件中,获取两个输入框中的数字,进行相应的运算,并将结果显示在第三个文本框中。
实验步骤
- 创建一个名为 Calculator 的 Java 类,并继承 JFrame 类。
- 在 Calculator 类中定义三个 JTextField 文本框和四个 JButton 按钮。
- 在 Calculator 类中添加一个构造方法,设置窗口标题为'计算',并将布局设置为 FlowLayout 布局。
- 在构造方法中,创建并添加三个文本框和四个按钮,并为按钮添加点击事件。
- 在点击事件中获取两个输入框中的数字,进行相应的运算,并将结果显示在第三个文本框中。
实验代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
JTextField num1, num2, result;
JButton add, subtract, multiply, divide;
public Calculator() {
super("计算");
setLayout(new FlowLayout());
num1 = new JTextField(10);
num2 = new JTextField(10);
result = new JTextField(10);
result.setEditable(false);
add = new JButton("加");
subtract = new JButton("差");
multiply = new JButton("积");
divide = new JButton("除");
add(num1);
add(num2);
add(result);
add(add);
add(subtract);
add(multiply);
add(divide);
add.addActionListener(this);
subtract.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
double num1Value = Double.parseDouble(num1.getText());
double num2Value = Double.parseDouble(num2.getText());
double resultValue = 0;
if (e.getSource() == add) {
resultValue = num1Value + num2Value;
} else if (e.getSource() == subtract) {
resultValue = num1Value - num2Value;
} else if (e.getSource() == multiply) {
resultValue = num1Value * num2Value;
} else if (e.getSource() == divide) {
if (num2Value == 0) {
result.setText("除数不能为零");
return;
}
resultValue = num1Value / num2Value;
}
result.setText(String.valueOf(resultValue));
}
public static void main(String[] args) {
new Calculator();
}
}
原文地址: https://www.cveoy.top/t/topic/oMuu 著作权归作者所有。请勿转载和采集!