我将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);
}
}
现在,我想使用Hashmaps访问标签是一种迂回的方式。使用getFellow(String id)方法访问选项卡会简单得多,对吧?但是,我不确定如何实现这一点。有人可以帮我这个吗?
谢谢, 索尼
答案 0 :(得分:1)
getFellow()方法可以在ZK的组件上使用。 用户可以通过它的ID
访问组件myWindow.getFellow("label_1");
如果您在应用程序中使用ZK MVC方式。
您可以将**“作曲家”保存到桌面,然后就可以访问该页面的任何部分。
答案 1 :(得分:1)
有几种方法可以做到这一点:
<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;
,您就可以立即使用它。 请注意使用和应用关键字之间的差异。如果您使用第二种方法,请确保您的变量名称与组件的ID匹配(“tab1”)。