2011-06-09 40 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); 
}