
事件监听
发布日期:2021-05-10 00:19:16
浏览次数:22
分类:精选文章
本文共 2076 字,大约阅读时间需要 6 分钟。
学习Java事件监听机制,让我们一步步探索其实现方式和实际应用。
事件监听的基础实现
事件监听是Java中一个核心概念,用于响应用户操作或系统事件。通过创建适当的监听器(listener),我们可以指定当特定事件发生时的处理逻辑。比如在GUI应用中,按钮点击事件通常会派发为ActionEvent,我们可以通过实现ActionListener接口为这些事件指定响应。
代码示例
public class TextActionEvent { public static void main(String[] args) { Frame frame = new Frame(); Button button = new Button(); MyActionListener myActionListener = new MyActionListener(); button.addActionListener(myActionListener); frame.add(button, BorderLayout.CENTER); frame.pack(); windowClose(frame); // 退出窗口 frame.setVisible(true); } private static void windowClose(Frame frame) { frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); }}class MyActionListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { System.out.println("aaa"); }}
在上述代码中,TextActionEvent
类创建了一个GUI窗口,并添加了一个按钮。按钮的点击事件通过MyActionListener
监听器处理,当按钮被点击时会打印出“aaa”。windowClose
方法确保了窗口关闭后程序退出。
多个按钮共同作用的事件处理
在某些情况下,多个UI元素可能需要触发相同的事件处理逻辑。Java允许一个ActionListener
同时监听多个动作事件,实现这一点非常方便。
代码示例
public class TextActiontow { public static void main(String[] args) { Frame frame = new Frame("开始-停止"); Button button1 = new Button("start"); Button button2 = new Button("stop"); MyMoniter myMoniter = new MyMoniter(); button1.addActionListener(myMoniter); button2.addActionListener(myMoniter); frame.add(button1, BorderLayout.NORTH); frame.add(button2, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); }}class MyMoniter implements ActionListener { @Override public void actionPerformed(ActionEvent e) { System.out.println("按钮被点击了:" + e.getActionCommand()); }}
在这个例子中,MyMoniter
类同时监听了两个按钮的点击事件。当任意一个按钮被点击时,都会触发同样的处理逻辑,并打印出事件信息。这种方法既简洁又高效,适用于多个UI元素需要共享相同事件处理逻辑的情况。
通过以上代码示例,可以看出Java事件监听机制实际上的灵活性和强大功能。它不仅支持单个事件处理器,同时也允许一个事件处理器处理多个UI事件,增加了代码的可维护性和可扩展性。在实际应用中,事件监听是构建响应性 GUI 的核心技术之一。
发表评论
最新留言
很好
[***.229.124.182]2025年04月25日 12时33分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Elasticsearch7.3.1启动指定JDK11
2023-01-24
Elasticsearch下载安装
2023-01-24
Elasticsearch入门教程(Elasticsearch7,linux)
2023-01-24
ElasticSearch设置字段的keyword属性
2023-01-24
Elasticsearch面试题
2023-01-24
element 如何使用自定义icon图标
2023-01-24
element-plus修改主题颜色
2023-01-24
element-ui:el-input输入数字-整数和小数
2023-01-24
ElementUI-el-progress改变进度条颜色跟文字样式
2023-01-24
ELK应用日志收集实战
2023-01-24
elTable火狐浏览器换行
2023-01-24
15个Python数据处理技巧(非常详细)零基础入门到精通,收藏这一篇就够了
2023-01-24
0基础成功转行网络安全工程师,年薪30W+,经验总结都在这(建议收藏)
2023-01-24
100个电脑常用组合键大全(非常详细)零基础入门到精通,收藏这篇就够了
2023-01-24
10个程序员可以接私活的平台
2023-01-24