如何添加/删除侦听器在Java中工作? Java使用列表来添加/删除侦听器,但是当我在显示帧时添加侦听器并且在隐藏帧时尝试删除它时,它似乎不能正常工作。它仍然是!!!我们应该如何删除听众?使用listenerList.remove(instance)
是不够的?或者我应该做点什么?我是否应该为所有侦听器实例定义hashCode并且相等。我从未在Java中看到过这样的做法。
我不清楚如果没有hashCode()和equal(),它是如何工作的,如果它只能在我们的listenerList.add/remove(instance)
方法中使用add/removeXXXListener(instance)
。
我添加/删除侦听器的代码如下:
List<ITackleMovementListener> tackleMovementListeners = new ArrayList<>();
public void addTackleMovementListener(ITackleMovementListener tml){
this.tackleMovementListeners.add(tml);
}
public void removeTackleMovementListener(ITackleMovementListener tml){
this.tackleMovementListeners.remove(tml);
}
我使用JFrame的addComponentListener
来添加和删除侦听器,但是在关闭JFrame之后侦听器仍然存在