Java 如何从org.zkoss.zul.A复制所有EventListener
我很困惑,因为我找不到任何方法将EventListeners从一个锚复制到另一个锚 我有一个自定义组件Btn扩展了一个,它在构造函数中以A作为参数 我需要:Java 如何从org.zkoss.zul.A复制所有EventListener,java,events,anchor,zk,Java,Events,Anchor,Zk,我很困惑,因为我找不到任何方法将EventListeners从一个锚复制到另一个锚 我有一个自定义组件Btn扩展了一个,它在构造函数中以A作为参数 我需要: 将所有EventListeners从A设置为Btn 无需反射,无需创建包含46个字符串项的新列表即可完成此操作 主要问题: Events类不是枚举,因此我无法迭代所有46个事件名称 AbstractComponent(A的父级)无法获取EventListeners的可移植映射 它只向我提供不可设置的EventListenerMap对
- 将所有EventListeners从A设置为Btn
- 无需反射,无需创建包含46个字符串项的新列表即可完成此操作
- Events类不是枚举,因此我无法迭代所有46个事件名称
- AbstractComponent(A的父级)无法获取EventListeners的可移植映射
- 它只向我提供不可设置的EventListenerMap对象
- 我尝试了反射,但无法实现“onClick”,只能从声明的字段中实现“ON_CLICK”
public Btn(A anchor) { this(anchor.getLabel()); this.setHref(anchor.getHref()); for (String evt : getEventNames()) { for (EventListener listener : anchor.getEventListeners(evt)) { this.addEventListener(evt, listener); } } } public final Set<String> getEventNames() { Set<String> set = new HashSet<String>(); set.add(Events.ON_AFTER_SIZE); set.add(Events.ON_BLUR); ... ... set.add(Events.ON_VISIBILITY_CHANGE); set.add(Events.ON_Z_INDEX); return set; }
公共Btn(一个锚){ 这个(anchor.getLabel()); this.setHref(anchor.getHref()); for(字符串evt:getEventNames()){ for(EventListener:anchor.getEventListeners(evt)){ this.addEventListener(evt,listener); } } } 公共最终集getEventNames(){ Set=newhashset(); set.add(事件大小之后的事件); set.add(事件在_BLUR上); ... ... set.add(事件的可见性变化); set.add(事件在Z_索引上); 返回集; }