Vaadin:如何在TabSheet中迭代Tabs



在Vaadin中,假设我必须根据其名称在TabSheet中找到一个Tab。

我如何迭代Tabsheet中的选项卡来实现这一点?

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

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

http://vaadin.com/api/com/vaadin/ui/TabSheet.html#getComponentIterator()

In 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<Component>,它也可能看起来像这样:

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

相关内容

  • 没有找到相关文章

最新更新