2017-03-27 99 views
0

我有一個包含2個JTable的JPanel。當我點擊一個按鈕時,一次只能看到一張桌子。與JPanel重疊的兩個動態JTable

我的問題是,當我點擊一個按鈕,它顯示我的表1,當我點擊兩個按鈕,它讓我看到表2,相互重疊的表1

我想表1顯示前被移除表2.我試過repaint()revalidate()但沒有任何效果。

+1

使用CardLayout。 – hunter

+0

你能告訴我們你的代碼嗎? –

+1

使用table1.setVisible(false);單擊時將其隱藏在面板中。 – msagala25

回答

1

如果你需要一個JPanel只有一個表的時間,清除的JPanel上的按鈕進行點擊添加按鈕按下的基礎上所需要的表。

您可以使用下面的功能是一樣的:

jpanel.remove(table_ref) 
or 
jpanel.removeAll() 

除去第一表添加第二個表之後。

jpanel.add(table_ref); 

添加表後請記住以下內容。

jpanel.revalidate(); 
jpPanel.repaint(); 

重新驗證和repaint將有助於刷新jpanel。

+0

謝謝米蘭,這工作得很好! –

2

顯示這個例子中,我使用CardLayout

JPanel cardPanel = new JPanel(new CardLayout()); 
cardPanel.add("table1", new JTable()); 
cardPanel.add("table2", new JTable()); 

// when you want to show table1 and hidden table2 
((CardLayout)cardPanel.getLayout()).show(cardPanel, "table1"); 
+0

這是正確的答案 – hunter

+1

@mKorbel,感謝你給我指點行爲 – hunter