迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中将 ActionListener 添加到 JButton

作者:迹忆客 最近更新:2023/09/28 浏览次数:

今天我们将讨论 java.awt.eventActionListener 接口以及如何将它添加到 JButton,它是 Java Swing 包中 JFrame 类的一个组件。


使用匿名类将 ActionListener 添加到 JButton

在第一个示例中,我们使用方法 main() 创建了一个类 JavaExample,并在该方法中创建了一个 JFrame 对象。在 JFrame 窗口中,我们创建三个组件:一个 JLabel 来显示消息,一个 JTextField 来接受输入,以及一个 JButton,我们将添加 ActionListener

为了添加监听器,我们调用 JButton 类的 addActionListener() 函数,在这个方法中,我们创建一个匿名类并覆盖 ActionListener 接口的一部分 actionPerformed() 函数. actionPerformed() 是一种在执行操作时调用的方法。

actionPerformed() 方法中,我们首先检查 JTextField 中是否有任何内容,如果 Text Field 为空,则使用 JLabel 显示一条消息。否则,我们将显示我们在文本字段中写入的消息。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JavaExample {
    public static void main(String[] args) {

        JFrame jFrame = new JFrame("Java Example");

        JLabel jLabel = new JLabel();
        jLabel.setBounds(50, 150, 350, 40);

        final JTextField jTextField = new JTextField();
        jTextField.setBounds(50, 50, 150, 20);

        JButton jButton = new JButton("Submit");
        jButton.setBounds(50, 100, 100, 30);

        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (!jTextField.getText().equals(""))
                    jLabel.setText(jTextField.getText());
                else
                    jLabel.setText("Please write something in the edit box");
            }
        });
        jFrame.add(jLabel);
        jFrame.add(jButton);
        jFrame.add(jTextField);
        jFrame.setSize(400, 400);
        jFrame.setLayout(null);
        jFrame.setVisible(true);
    }
}

输出:

将动作监听器添加到 jbutton 1


使用匿名类和 Lambda 将 ActionListener 添加到 JButton

在 Java 8 中,添加了我们将在本示例中使用的 Lambda 表达式。一切都与前面的示例相同,但在程序中,我们创建了一个方法 buttonPressed(),并在该函数中,我们将文本字段中写入的消息打印到 JLabel

要将 ActionListener 添加到 JButton,我们使用 addActionListener() 函数,在该方法中,我们使用 lambda 方法。我们使用作为 ActionEvent 对象的参数 e,然后调用 buttonPressed() 方法。

import javax.swing.*;

public class JavaExample {
    static JTextField jTextField;
    static JLabel jLabel;

    public static void main(String[] args) {

        JFrame jFrame = new JFrame("Java Example");

        jLabel = new JLabel();
        jLabel.setBounds(50, 150, 350, 40);

        jTextField = new JTextField();
        jTextField.setBounds(50, 50, 150, 20);

        JButton jButton = new JButton("Submit");
        jButton.setBounds(50, 100, 100, 30);

        jButton.addActionListener(e -> buttonPressed());
        
        jFrame.add(jLabel);
        jFrame.add(jButton);
        jFrame.add(jTextField);
        
        jFrame.setSize(400, 400);
        jFrame.setLayout(null);
        jFrame.setVisible(true);
    }

    static void buttonPressed() {
        if (!jTextField.getText().equals("")) {
            jLabel.setText(jTextField.getText());
        } else {
            jLabel.setText("Please write something in the edit box");
        }
    }
}

输出:

将动作监听器添加到 jbutton 2


使用继承将 ActionListener 添加到 JButton

在这个程序中,我们使用继承的概念添加了 ActionListener

我们创建一个类 JavaExample,然后扩展类 JFrame 并实现 ActionListener 接口。我们必须重写作为 ActionListener 接口一部分的 actionPerformed() 方法。

我们在 main() 方法之外声明 JFrame 组件变量,因为我们需要在函数外使用它。我们创建 JavaExample 类的构造函数并在其中设置所有组件。

要将 ActionListener 添加到 JButton 组件,我们调用 addActionListener() 方法并传递 this,它指向当前类的上下文,因为当前类 JavaExample 实现 ActionListener 它是传递函数的有效上下文。

actionPerformed() 函数中,我们编写了按下按钮时要执行的操作。在 main() 方法中,我们创建 JFrame 的实例并设置其布局和可见性。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JavaExample extends JFrame implements ActionListener {
    static JTextField jTextField;
    static JLabel jLabel;
    static JButton jButton;

    public static void main(String[] args) {
        JFrame jFrame = new JavaExample();
        jFrame.setLayout(null);
        jFrame.setVisible(true);
    }

    public JavaExample() {
        jLabel = new JLabel();
        jLabel.setBounds(50, 150, 350, 40);

        jTextField = new JTextField();
        jTextField.setBounds(50, 50, 150, 20);

        jButton = new JButton("Submit");
        jButton.setBounds(50, 100, 100, 30);

        jButton.addActionListener(this);

        add(jLabel);
        add(jButton);
        add(jTextField);

        setSize(400, 400);

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (!jTextField.getText().equals("")) {
            jLabel.setText(jTextField.getText());
        } else {
            jLabel.setText("Please write something in the edit box");
        }
    }
}

输出:

将动作监听器添加到 jbutton 3

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中简化或减少分数

发布时间:2023/09/28 浏览次数:186 分类:Java

在数学中,分数是表示为商的数字。它以 a/b 形式表示,其中 a 是被除数(分子),b 是除数(分母)。在数学中,分数代表整体的一部分或一部分。它有分子和分母两部分,其中分子是被除数

在 Java 中计算两点之间的距离

发布时间:2023/09/28 浏览次数:84 分类:Java

使用勾股定理,我们可以在 Java 中找到两点之间的距离。本文介绍如何在 Java 中计算两点之间的距离。

在 Java 中计算欧几里得距离

发布时间:2023/09/28 浏览次数:80 分类:Java

本文将帮助你使用 Java 计算两点之间的距离。在本文中,我们将研究两点之间距离的计算。在 Java 中计算欧几里得距离

在 Java 中计算数学表达式

发布时间:2023/09/28 浏览次数:146 分类:Java

在 Java 编程语言中,你可以使用堆栈计算算术表达式。堆栈是一种适用于先进后出(FILO) 或后进先出(LIFO) 的数据结构机制,我们将使用它来评估算术表达式。

使用 Java FFMPEG 将文件从一种格式转换为另一种格式

发布时间:2023/09/28 浏览次数:97 分类:Java

本文演示了如何使用 Java 包装器和 Java 运行时运行 FFMPEG 将文件从一种格式转换为另一种格式。FFMPEG 最适合内容创建者或大多数时间与媒体文件交互的人。今天,我们将探讨如何使用 Java FFMPE

Java 中使用多个变量进行 for 循环

发布时间:2023/09/28 浏览次数:179 分类:Java

本文将介绍使用多变量的 for 循环的方法。本文介绍了我们如何在 Java for 循环中使用多个变量。我们可以通过正确遵循 java for 循环的语法来实现。

退出 Java 中的 While 循环

发布时间:2023/09/28 浏览次数:110 分类:Java

这篇文章就是要知道如何在 Java 中退出 while 循环。本文介绍了如何退出 Java 中的 while 循环并通过一些示例代码对其进行处理,以帮助你进一步理解该主题。

打破 Java 中的嵌套循环

发布时间:2023/09/28 浏览次数:200 分类:Java

这篇文章讨论了如何在 Java 中打破嵌套循环的方法。本文介绍了如何在 Java 中打破嵌套循环的方法。我们包含了一些示例程序,你可以将其作为指南。

在 Java 中跳出 for 循环

发布时间:2023/09/28 浏览次数:112 分类:Java

本文将教我们如何跳出 Java 中的 for 循环。在编程中,某些条件需要中断 for 循环或任何其他与此相关的循环。让我们来看看。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便