2

我已阅读有关PropertyChange 支持EventListenerList的文档。list of listeners据我了解,两者在持有 a和发生notifying时都有相似的目的event/propertyChange。是否只有在 的情况下才会GUI applications变得EventListenerList方便?JavaBean对于不使用的简单应用程序,GUI components使用其中一个是否有优势。

4

2 回答 2

4

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

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

考虑到这一点,您应该ProperyChangeSupport在想要通知相关方对象的属性/值发生更改以及EventListenerList想要为对象内发生的事情提供一般事件通知时使用(但不必相关)到特定的财产或州)

我遇到的唯一问题ProptertyChanegSupport是,哪些属性是绑定的,哪些不是,有时很难开始使用新对象,因为查找所有“addListener”方法相当容易,但那是只有我

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

于 2014-03-10T20:41:23.530 回答
2

由于PropertyChangeListener只是EventListener的一个特定“子类”(扩展接口)——它是一个标记接口并且不定义任何方法,因此使用PropertyChangeSupport比使用 EventListenerList更容易——那是因为如果你从 EventListenerList 开始,你会需要始终进行 instanceof 检查和强制转换以获取侦听器的实际“业务”方法(因为它们都实现的接口没有方法)

于 2014-03-10T20:15:06.333 回答