java - propertyChange Support 与 EventListenerList 的差异以及何时更喜欢它们?

标签 java swing javabeans propertychangesupport eventlistenerlist

我已阅读 PropertyChange support 的文档和 EventListenerList . 根据我的理解,两者在保存 listeners 和在 event/propertyChange 发生时 notification 它们的目的相似。 是否只有在 GUI 应用程序 的情况下,EventListenerList 才变得方便?对于不使用 GUI 组件 的简单 JavaBean 应用程序,使用其中一个是否比另一个有优势。

最佳答案

一般来说,PropertyChangeEvent 发生在对象的某些属性值发生变化时(您可以读取的属性/值),其中(一般)事件可以描述任何类型的事件(例如选择或鼠标单击的变化),它不必代表对象状态的变化

PropertyChangeSupport 是 bean 框架的一部分(特别是但不限于)GUI 编辑器。这并不意味着您不能使用它,事实上,许多对象都依赖于此功能,例如 SwingWorker 和 SwingLabs 中的许多对象。

考虑到这一点,当您想要通知感兴趣的各方对象的属性/值发生变化时,您应该使用 ProperyChangeSupport,当您想要提供一般信息时,您应该使用 EventListenerList对象内发生的事情的事件通知(但不必与特定属性或状态相关)

我在 ProptertyChanegSupport 上遇到的唯一问题是,哪些属性已绑定(bind),哪些未绑定(bind),有时会导致难以开始使用新对象,而新对象相当容易查找所有“addListener”方法,但那只是我

虽然我确定 EventListenrerList 的初衷是用于 GUI,但我之前将它们用于非 GUI 工作,但您可能会发现使用 更容易List 如果你只支持一个监听器,只是说

关于java - propertyChange Support 与 EventListenerList 的差异以及何时更喜欢它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310001/

相关文章:

java - 找不到名称下的 bean

java - 使用 Retrofit 和 RxJava 下载并编写文件

java - JFrame 和图形的深度 (Java)

java - 使用JavaBeans的地方?

java - 调用之间的 Swing 延迟

java - Java中劫持监听器,传入额外参数

java - 从 CSV 填充复杂 bean

java - 在 Selenium 中是否有使用 window().setSize 的替代方法?

java - 从二维坐标数组创建一条路径供 AI 遵循

java - 将 json 字符串转换为 java arraylist(使用 jackson)