首页 > Java > java教程 > 正文

Swing 应用程序中的事件侦听器是否按可预测的顺序执行?

Susan Sarandon
发布: 2024-11-10 20:31:02
原创
463 人浏览过

Do Event Listeners in Swing Applications Execute in a Predictable Order?

Swing 应用程序中的 EventListener 顺序

在 Swing 应用程序中,当向组件添加多个侦听器时,这些侦听器收到通知的顺序事件可以影响程序的行为。本问题探讨了特定场景下监听器调用的预期顺序,以及是否有可靠的方法来确保所需的顺序。

场景和观察

考虑一个 Swing 应用程序子面板监听各个 JSlider,父面板监听所有子面板。为了获得一致的结果,必须在添加子面板侦听器之前将父面板添加为侦听器。这与 EventListenerList 类推荐的顺序以及问题引用的文章一致。

我们可以依赖该顺序吗?

EventListenerList 文档建议该顺序监听器通知是建议而不是保证。因此,在不同的 JRE 版本中依赖此顺序可能存在风险。

替代解决方案

为了确保所需的顺序,请考虑采用链式方法,让侦听器在给后来的听众。例如,子面板的 ChangeListener 可以简单地将事件转发到其自己的 stateChanged 方法中的父侦听器。这种链接机制可靠地强制执行侦听器通知的预期顺序。

以上是Swing 应用程序中的事件侦听器是否按可预测的顺序执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板