在Vaadin中,我必须根据其名称在TabSheet中找到一个Tab。
如何迭代选项卡中的选项卡来完成此操作?
答案 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!!!
}
});