我将一组tab从一个zul文件传递到一个java文件,如下所示:
tabs.zul
<tabs>
<tab id="tab1" label="Tab1"> </tab>
<tab id="tab2" label="Tab2"> </tab>
</tabs>
<zscript>
testTabs = new TestTabs();
Tab[] tabs = {tab1, tab2}
testTabs.registerTabs(tabs)
</zscript>TestTabs.java
public class TestTabs {
....
private HashMap<String,Tab> tabMap;
void registerTabs (Tab[] tabs) {
this.tabMap = new HashMap<String,Tab>();
for (Tab t: tabs) {
this.tabMap.put(t.getId(),t);
}
}
if(condition) {
tabMap.get("tab1").setVisible(true);
tabMap.get("tab2").setVisible(true);
}
}现在,我猜使用Hashmap来访问选项卡是一种间接的方式。使用getFellow(String id)方法访问选项卡会简单得多,对吧?但是,我不确定如何实现这一点。有人能帮我一下吗?
谢谢,索尼
发布于 2010-11-26 12:26:33
有几种方法可以做到这一点:
<window id="myWindow" use="package.to.your.ClassThatExtendsWindow">
<!-- your tabs go here -->
</window>
然后在你的类中,你可以使用Tab tab1 = (Tab) this.getFellow("tab1");
<window id="myWindow" apply="package.to.your.ClassThatExtendsGenericForwardComposer">
<!-- your tabs go here -->
</window>
然后在你的类中声明private Tab tab1;,你就可以立即使用它了。
注意use和apply关键字之间的区别。如果使用第二种方法,请确保变量的名称与组件的id ("tab1")相匹配。
发布于 2010-11-15 20:39:17
可以在ZK的组件上使用getFellow()方法。用户可以通过组件的ID访问该组件
myWindow.getFellow("label_1");如果你在你的应用程序上使用ZK MVC的方式。
你可以将你的**“作曲家”保存到桌面,然后你就可以访问页面的任何部分了。
https://stackoverflow.com/questions/3980730
复制相似问题