首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ZK getFellow()方法?

如何使用ZK getFellow()方法?
EN

Stack Overflow用户
提问于 2010-10-21 01:42:27
回答 2查看 7.7K关注 0票数 2

我将一组tab从一个zul文件传递到一个java文件,如下所示:

tabs.zul

代码语言:javascript
复制
<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

代码语言:javascript
复制
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)方法访问选项卡会简单得多,对吧?但是,我不确定如何实现这一点。有人能帮我一下吗?

谢谢,索尼

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-26 12:26:33

有几种方法可以做到这一点:

  1. 扩展类中的org.zkoss.zul.Window并将其链接到您的zul文件中,如下所示:

<window id="myWindow" use="package.to.your.ClassThatExtendsWindow">

<!-- your tabs go here -->

</window>

然后在你的类中,你可以使用Tab tab1 = (Tab) this.getFellow("tab1");

  • Extend org.zkoss.zk.ui.util.GenericForwardComposer并将它链接到你的zul中,如下所示:

<window id="myWindow" apply="package.to.your.ClassThatExtendsGenericForwardComposer">

<!-- your tabs go here -->

</window>

然后在你的类中声明private Tab tab1;,你就可以立即使用它了。

注意use和apply关键字之间的区别。如果使用第二种方法,请确保变量的名称与组件的id ("tab1")相匹配。

票数 1
EN

Stack Overflow用户

发布于 2010-11-15 20:39:17

可以在ZK的组件上使用getFellow()方法。用户可以通过组件的ID访问该组件

代码语言:javascript
复制
myWindow.getFellow("label_1");

如果你在你的应用程序上使用ZK MVC的方式。

你可以将你的**“作曲家”保存到桌面,然后你就可以访问页面的任何部分了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3980730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档