2011-06-09 41 views
0

在Vaadin中,我创建了一个TabSheets数组。Vaadin:创建TabSheets的ArrayList

ArrayList<TabSheet> Tabs = new ArrayList<TabSheet>(); 

我对它们执行一些操作,例如为arraylist中的每个Tabsheet添加附加的选项卡/选项卡。

之后,当我尝试将它作为组件添加到mainWindow时,出现错误。这是我尝试:

BaseClassWindow.addComponent((Component) Tabs); 

我得到这个ClassCastError:

java.util.ArrayList cannot be cast to com.vaadin.ui.Component 

这又如何解决?有没有解决方法?

+0

你需要把你的tabsheets在一个容器中对它们进行显示。你如何期待他们被展示? – Mat 2011-06-09 04:59:34

+0

在Vaadin中,一旦我将它们作为组件添加到窗口实例中,它们就会显示出来。问题是,这里发生的Casting从ArrayList实例到vaadin ui组件。 – brud 2011-06-09 05:13:44

+3

是的,这是正常的,你得到一个Cast错误,你只能显示组件,而ArrayList不是一个。如果您只想一次显示一个TabSheet,请调用'BaseClassWindow.addComponent(Tags.get(the_index_you_want))'。 – Mat 2011-06-09 05:27:13

回答

1

ArrayList不是一个组件,所以你不能施放它。然而,列表的内容是TabSheets,因此您可以添加这些内容。

例如:

for(TabSheet tabsheet : tabs){ 
    myWindow.addComponent(tabsheet); 
}