利用 Java Swing 创建动态且响应式的图形用户界面 (GUI) (利用javascript制作简单的计算器)

教程6个月前发布 jdkjadmin
4 00

利用

JavaSwing 是一个功能强大的 GUI 库,允许开发人员创建复杂且用户友好的应用程序。它提供了各种组件,例如按钮、文本字段和菜单,可以轻松组合以创建自定义界面。

Swing 组件是动态的,这意味着它们可以根据用户交互做出反应。例如,如果用户单击按钮,则该按钮可以执行操作,例如打开新窗口或更改组件的外观。这种响应能力使 Swing 成为创建交互式且用户友好的应用程序的理想选择。

在本文中,我们将使用 Java Swing 创建一个简单的计算器应用程序。此应用程序将包括用于输入数字和执行计算的文本字段、用于执行计算的按钮以及一个显示结果的标签。

创建计算器 GUI

要创建计算器 GUI,我们需要创建一个 JPanel并向其中添加 Swing 组件。 JPanel 是一个容器组件,它允许我们组织其他组件。以下代码创建一个 JPanel 并向其中添加文本字段、按钮和标签:


import javax.swing.;
import java.awt.;public class CalculatorGUI {public static void main(String[] args) {// 创建一个新的 JPanelJPanel panel = new JPanel();// 设置面板的布局panel.setLayout(new GridLayout(3, 2));// 创建文本字段用于输入数字JTextField num1 = new JTextField();JTextField num2 = new JTextField();// 创建按钮用于执行计算JButton addButton = new JButton("+");JButton subtractButton = new JButton("-");JButton multiplyButton = new JButton("");JButton divideButton = new JButton("/");// 创建一个标签用于显示结果JLabel resultLabel = new JLabel("结果:");// 将组件添加到面板panel.add(num1);panel.add(num2);panel.add(addButton);panel.add(subtractButton);panel.add(multiplyButton);panel.add(divideButton);panel.add(resultLabel);// 创建一个新的 JFrame 并将面板添加到其中JFrame frame = new JFrame("计算器");frame.add(panel);// 设置窗体的属性frame.setSize(300, 200);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 显示窗体frame.setVisible(true);}
}

添加监听器

为了使计算器能够响应用户交互,我们需要为按钮添加监听器。监听器是特殊类型的对象,它会在特定的事件发生时被触发,例如单击按钮。以下代码为每个按钮添加一个监听器,当按钮被单击时执行计算并更新结果标签:


import javax.swing.;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class CalculatorGUI {// 添加监听器addButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 + num2;// 更新结果标签resultLabel.setText("结果:" + result);}});subtractButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 - num2;// 更新结果标签resultLabel.setText("结果:" + result);}});multiplyButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 num2;// 更新结果标签resultLabel.setText("结果:" + result);}});divideButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 / num2;// 更新结果标签resultLabel.setText("结果:" + result);}});
}

完整代码

以下显示了完整代码,包括 GUI 创建和监听器添加:


import javax.swing.;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class CalculatorGUI {public static void main(String[] args) {// 创建一个新的 JPanelJPanel panel = new JPanel();// 设置面板的布局panel.setLayout(new GridLayout(3, 2));// 创建文本字段用于输入数字JTextField num1 = new JTextField();JTextField num2 = new JTextField();// 创建按钮用于执行计算JButton addButton = new JButton("+");JButton subtractButton = new JButton("-");JButton multiplyButton = new JButton("");JButton divideButton = new JButton("/");// 创建一个标签用于显示结果JLabel resultLabel = new JLabel("结果:");// 将组件添加到面板panel.add(num1);panel.add(num2);panel.add(addButton);panel.add(subtractButton);panel.add(multiplyButton);panel.add(divideButton);panel.add(resultLabel);// 创建一个新的 JFrame 并将面板添加到其中JFrame frame = new JFrame("计算器");frame.add(panel);// 设置窗体的属性frame.setSize(300, 200);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 添加监听器addButton.addActionListener(new ActionListener() {@Override
public void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 + num2;// 更新结果标签resultLabel.setText("结果:" + result);}});subtractButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 - num2;// 更新结果标签resultLabel.setText("结果:" + result);}});multiplyButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 num2;// 更新结果标签resultLabel.setText("结果:" + result);}});divideButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 从文本字段中获取数字int num1 = Integer.parseInt(textField1.getText());int num2 = Integer.parseInt(textField2.getText());// 执行计算int result = num1 / num2;// 更新结果标签resultLabel.setText("结果:" + result);}});// 显示窗体frame.setVisible(true);}
}

结论

本文展示了如何使用 Java Swing 创建一个动态且响应式的 GUI。我们创建了一个简单的计算器应用程序,用户可以输入数字并执行计算。该应用程序使用文本字段、按钮和标签,并且能够根据用户交互做出反应。这种响应能力对于创建交互式且用户友好的应用程序至关重要。

Swing 是一个强大的 GUI 库,可以用于创建广泛的应用程序。从简单的计算器到复杂的图形编辑器,Swing 可以

© 版权声明

相关文章