Vaadin:如何在TabSheet中迭代Tabs?

时间:2011-06-08 07:54:44

标签: java user-interface vaadin

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

如何迭代选项卡中的选项卡来完成此操作?

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:3)

答案 2 :(得分:2)

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