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