我会用
ChangeEvent处理它.这只是表明事情发生了变化.
至于实现添加/删除/触发功能.没有像PropertyChangeSupport这样的机制,但代码很简单,并不需要它.
private final EventListenerList listenerList = new EventListenerList();
private final ChangeEvent stateChangeEvent = new ChangeEvent(this);
public void addChangeListener(ChangeListener l) {
listenerList.add(ChangeListener.class, l);
}
public void removeChangeListener(ChangeListener l) {
listenerList.remove(ChangeListener.class, l);
}
protected void fireChange() {
for (ChangeListener l: listenerList.getListeners(ChangeListener.class)) {
l.stateChanged(stateChangeEvent);
}
}
注意:JComponent提供受保护的listenerList对象以供子类使用.