2012-04-02 62 views
3

我有兩個JPanel需要添加一個JPanel,但只有最後添加的JPanel纔會顯示JPanel。如下圖所示:在Java swing中重用相同的JPanel

holderPanel1.add(dataPanel); 
holderPanel2.add(dataPanel); 

僅holderPanel2顯示dataPanel上,但holderPanel1不顯示。

回答

6

UI組件(例如JPanel)是您在屏幕上看到的東西(位置,父級,子組件等)的下劃線表示,因此您在屏幕上看到的每個面板都必須具有單獨的下劃線表示,所以您不能將面板添加到兩個不同的面板,您需要創建兩個單獨的面板。

+0

是否有可能創建另一個JPanel?我已經嘗試dataPanel2 = dataPanel;但它不起作用 – sutoL 2012-04-02 08:20:38

+0

您可以創建另一個面板,但是您所做的(在評論中)將同一個面板分配給另一個變量。您需要使用'JPanel p2 = new JPanel()' – MByD 2012-04-02 08:21:59

+0

創建另一個面板,那麼這是否意味着我將不得不再次創建所有組件以添加新的JPanel。如果我需要使用兩次以上的JPanel,這會不會很糟糕。 – sutoL 2012-04-02 08:25:28