Vaadin:如何迭代 TabSheet 中的选项卡?

发布于 2024-11-14 13:09:45 字数 76 浏览 0 评论 0原文

在 Vaadin 中,假设我必须根据名称在 TabSheet 中找到一个选项卡。

如何迭代选项卡表中的选项卡来实现此目的?

In Vaadin, say I have to find a Tab in a TabSheet based on its name.

How do I iterate over the Tabs in the Tabsheet to accomplish this?

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

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

发布评论

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

评论(3

得不到的就毁灭 2024-11-21 13:09:45

您可以通过以下方式迭代选项卡并通过选项卡标题找到它们:

Iterator<Component> i = tabs.getComponentIterator();
while (i.hasNext()) {
    Component c = (Component) i.next();
    Tab tab = tabs.getTab(c);
    if ("some_caption".equals(tab.getCaption())) {
         // found it
    }
}

You can iterate the tabs and find them by the tab caption in the following way:

Iterator<Component> i = tabs.getComponentIterator();
while (i.hasNext()) {
    Component c = (Component) i.next();
    Tab tab = tabs.getTab(c);
    if ("some_caption".equals(tab.getCaption())) {
         // found it
    }
}
大海や 2024-11-21 13:09:45

在 Vaadin 7.x 中,getComponentIterator() 已弃用。所以@eeq 答案已过时。

以新的方式,他的解决方案可能看起来像这样:

Iterator<Component> iterator = tabSheet.iterator();
while (iterator.hasNext()) {
    Component component = iterator.next();
    TabSheet.Tab tab = tabSheet.getTab(component);
    if ("some tab caption".equals(tab.getCaption())) {
        // Found it!!!
    }
}

但由于 TabSheet 实现了 java.lang.Iterable它也可能看起来像这样:

for (Component component : tabSheet) {
    TabSheet.Tab tab = tabSheet.getTab(component);
    if ("some tab caption".equals(tab.getCaption())) {
        // Found it!!!
    }
}

或者甚至是 Java 8 风格:

tabSheet.iterator().forEachRemaining(component -> {
    if ("some".equals(tabSheet.getTab(component).getCaption())) {
        // got it!!!
    }
});

In Vaadin 7.x getComponentIterator() is deprecated. So @eeq answer is obsoleted.

In new manner his solution might look like:

Iterator<Component> iterator = tabSheet.iterator();
while (iterator.hasNext()) {
    Component component = iterator.next();
    TabSheet.Tab tab = tabSheet.getTab(component);
    if ("some tab caption".equals(tab.getCaption())) {
        // Found it!!!
    }
}

But since TabSheet implements java.lang.Iterable<Component> it could also look like this:

for (Component component : tabSheet) {
    TabSheet.Tab tab = tabSheet.getTab(component);
    if ("some tab caption".equals(tab.getCaption())) {
        // Found it!!!
    }
}

Or even in Java 8 style:

tabSheet.iterator().forEachRemaining(component -> {
    if ("some".equals(tabSheet.getTab(component).getCaption())) {
        // got it!!!
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文