如何使用ZK getFellow()方法?

发布于 2024-09-28 04:40:03 字数 858 浏览 6 评论 0原文

我将一堆选项卡从 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) 方法访问选项卡会简单得多,对吧?但是,我不确定如何实施。有人可以帮我解决这个问题吗?

谢谢, 索尼

I am passing a bunch of tabs from a zul file to a java file like so:

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);
   }  

}

Now, I guess using Hashmaps to access a tab is a roundabout way. Using a getFellow(String id) method to access a tab would be much simpler, right ? But, I am not sure how to implement that. Can someone help me with this?

Thanks,
Sony

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

完美的未来在梦里 2024-10-05 04:40:03

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

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



    然后在您的班级中,您可以使用 Tab tab1 = (Tab) this.getFellow("tab1");
  2. 扩展 org.zkoss.zk.ui.util.GenericForwardComposer 并链接它在你的 zul 中是这样的:



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

请注意 useapply 关键字之间的区别。如果您使用第二种方法,请确保变量的名称与组件的 ID(“tab1”)匹配。

There are several ways to do that:

  1. Extend org.zkoss.zul.Window in your class and link it in your zul file like this:
    <window id="myWindow" use="package.to.your.ClassThatExtendsWindow">
    <!-- your tabs go here -->
    </window>
    Then in your class you can use Tab tab1 = (Tab) this.getFellow("tab1");
  2. Extend org.zkoss.zk.ui.util.GenericForwardComposer and link it in your zul like this:
    <window id="myWindow" apply="package.to.your.ClassThatExtendsGenericForwardComposer">
    <!-- your tabs go here -->
    </window>
    Then in your class declare private Tab tab1; and you can use it right away.

Note the differente bewtween the use and apply keywords. If you use the second approach, make sure that the name of your variable matches the id of your component ("tab1").

女皇必胜 2024-10-05 04:40:03

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

myWindow.getFellow("label_1");

如果您在应用程序上使用 ZK MVC 方式,

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

The getFellow() method can be used on ZK's component.
Users can get access the component by it's ID

myWindow.getFellow("label_1");

if you're using ZK MVC way on your application.

you can save your **"composer" into the desktop, then you can access any part of the page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文