我正在创建一个JComponentFactory,其子类是JLabelFactory。 JLabelFactory中有一个create(Set listeners)方法,它应该做的是使用给定的方法(如下)将集合中的每个侦听器添加到创建的JLabel中。我可以这样做:
protected boolean addSpecificListeners(JLabel label, Set<EventListener> listeners) {
for(EventListener e: listeners){
if(e instanceof MouseMotionListener){
label.addMouseMotionListener((MouseMotionListener)e);
}
else if(e instanceof MouseWheelListener){
label.addMouseWheelListener((MouseWheelListener)e);
}
else if....
}
}
对我来说,这似乎不是一个聪明的方法。特别是因为我必须为EVER JComponent转到所有可能的Listener类型,我想添加监听器。有更聪明的方法吗?