java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java Swing监听器使用

Java Swing监听器的原理及使用方法举例

作者:Cult Of

swing是一个比较老的技术了,我觉得学习它还是很有必要的,也比较容易激发学习的兴趣,这篇文章主要介绍了Java Swing监听器的原理及使用方法的相关资料,需要的朋友可以参考下

一·什么是事件?

在Java中,“事件”是指用户与图形用户界面(GUI)组件交互时产生的操作,如点击按钮或在文本框中输入内容。它是描述这种交互行为的对象,包含了触发该事件的源信息及事件类型。Java通过事件监听器接口和事件处理方法来响应这些事件,实现对用户操作的反馈。事件是Java事件驱动编程模型的核心,支持复杂的GUI应用程序开发。

更加通俗的来讲,餐馆的服务员就是事件监听器,你点菜就是事件,而厨师接到消息做菜,就是结果。

二·Swing的监听器有哪些?

1.常用三类:

(1)MouseListener,MouseMotionListener,MouseWheelListener

MouseListener接口用于处理鼠标点击事件。它定义了五个方法,用于捕捉鼠标的单击、按下和释放等动作:

MouseMotionListener接口用于监听鼠标的移动以及拖拽事件。它定义了两个方法:

MouseWheelListener接口用于处理鼠标滚轮滚动事件。它只有一个方法:

也就是,这三个几乎监听了所有有关鼠标的行为。点击,滚动,进入离开,拖动,都有它实现。

(2)KeyListener

KeyListener接口用于监听键盘事件。它定义了三个方法,用于捕捉按键被按下、释放以及键入的动作:

要使用KeyListener,你需要创建一个类实现该接口,并根据需要重写上述方法之一或全部。然后通过addKeyListener方法将你的监听器添加到组件上。需要注意的是,不是所有组件都默认获得焦点,因此你可能需要设置组件为可聚焦或者手动请求焦点以确保它可以接收键盘事件。

所以,任何需要键盘操作(比如做个小游戏),都需要KeyListener。

(3)ActionListener

ActionListener接口主要用于处理动作事件,如按钮点击。它只有一个方法:

为了使用ActionListener,你需要创建一个类实现ActionListener接口,并重写actionPerformed方法。然后通过addActionListener方法将你的监听器添加到相应的组件上,例如按钮(JButton)。当用户触发了该组件的“动作”(例如点击按钮),就会调用actionPerformed方法。

按钮JButton点击实现需要ActionListener。

三·如何调用一个监听器?

1.implements Listener/extends Adapter

(1)implements Listener

public class ExampleListener implements KeyListener {
    @Override
    public void keyTyped(KeyEvent e) {

    }

    @Override
    public void keyPressed(KeyEvent e) {
        
    }

    @Override
    public void keyReleased(KeyEvent e) {

    }
}

这是最传统的做法,调用Listener接口。由于接口的特性,它通常用于一个监听器类需要继承多个监听器的情况。但是由于接口的特性,你需要实现它所有的方法(空着放着就行)。

(2)extends Adapter

public class ExampleListener extends KeyAdapter {
}

这是新的方式,继承Adapter类。但是由于类只支持单继承,多个需要实现的方法只能有一个这么做。Adapter不再强行实现不需要的方法。

2.使用监听器

            textField.addKeyListener(exampleListener);

它可以被拴在任何一个JPanel,JButton,JFrame,JTextField,等等,只要有对应的实现方法就行。

3.保障书

textField.requestFocus();

随时注意,你的监听器应该被赋予焦点。

四· 总结与深化理解:事件驱动编程的精髓与Swing监听器的本质

回顾前文,我们系统地探讨了Java GUI编程中“事件”的概念、Swing框架中核心的监听器接口及其使用方法。现在,让我们站在更高的视角进行总结,并深入剖析其背后的设计哲学、运行机制以及在实际开发中需要注意的关键点。

1. 事件驱动模型:GUI的“生命线”

2. 监听器接口 vs. 适配器类:选择之道

3. 事件分发线程(EDT):GUI线程安全的基石

// 在工作线程中
SomeResult result = doLongRunningTask();
// 更新UI必须在EDT
SwingUtilities.invokeLater(() -> {
    textField.setText(result.toString()); // 安全更新
    progressBar.setValue(100);
});

4. 焦点管理:被忽视的关键

5. 事件处理的层次结构与事件过滤

五·总结

尽管Swing在新技术浪潮中已不再是Java GUI的最前沿,其事件模型体现的设计思想和核心概念——事件驱动、松耦合、监听器/观察者模式、线程安全(EDT)、焦点管理——具有永恒的价值。它们是构建任何响应式、用户友好的交互式应用程序的基础。

深入理解Swing事件模型:

因此,熟练掌握Java Swing的事件处理,绝非仅仅是为了编写一个过时的桌面程序,而是为了掌握一套普适的、强大的、构建动态交互世界的思维方式和编程范式。它是你通向更广阔软件开发领域的坚实桥梁。在你的技术生涯中,无论前端框架如何更迭,移动平台如何变迁,事件驱动这一核心理念,将始终伴随着你,助你构建流畅、响应、用户喜爱的应用程序。

到此这篇关于Java Swing监听器的原理及使用方法的文章就介绍到这了,更多相关Java Swing监听器使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文