2017-03-27 8 views
0

2つのJTableを含むJPanelがあります。ボタンをクリックすると、一度に1つの表のみが表示されます。2つの動的JTableがJPanelとオーバーラップする

私はボタン1をクリックしたときに私の問題は、それは私に表1に示している、と私はボタン2をクリックしたとき、それは表1

と重なって表2、私は表1に示す前に削除したい私を示してい私はrepaint()revalidate()を試しましたが、何も動作しません。

+1

使用CardLayout。 – hunter

+0

あなたのコードを教えてください。 –

+1

を使用します。table1.setVisible(false);クリックするとパネル内で非表示にします。 – msagala25

答えて

1

を使用して、この例を示し、押されたボタンに基づいて必要なテーブルを追加します。

あなたは同じのために以下の機能を使用することがあります。

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

最初のテーブルが第二のテーブルを追加し除去した後。

jpanel.add(table_ref); 

表を追加した後で、次のことを覚えておいてください。

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

revalidateとrepaintは、jpanelをリフレッシュするのに役立ちます。

+0

ありがとうミラノ、これはちょうどうまく動作します! –

2

は、ボタンのクリックでクリアのJPanel、一度にJPanelの上の1つのテーブルのみを必要とする場合、私は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

関連する問題