gpt4 book ai didi

java - swing:事件监听器支持类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:39 26 4
gpt4 key购买 nike

是否有任何预先存在的类可以帮助支持添加/删除 EventListener 操作? (有点像 PropertyChangeSupport)

我正在尝试将我的代码划分为模型并使用 Java 进行查看。我有一些不规律地到达的数据,并且希望模型支持某种类型的 EventListener,以便 View 可以订阅模型中的更改。数据太多+太复杂了,我不想做整个细粒度的 Javabeans 属性更改支持;相反,我只想允许通知模型已以粗略的方式更改。

我怎样才能最好地做到这一点?

最佳答案

我会用 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 提供了一个 protected listenerList 对象供子类使用。

关于java - swing:事件监听器支持类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com