0
所以我有兩種方法method_1和method_2。這兩種方法都是相同的,只是中的一個小變化,用於循環。在點擊一個按鈕的事件,method_1得到執行,我得到的數據按照預期的JTable,類似地,當點擊第二個按鈕,method_2得到執行,我得到的結果,但是當我把鼠標懸停在表頭,前面的列名稱顯示並單擊行或滾動時,先前的數據將被覆蓋。JTable顯示關於懸停/點擊/滾動新數據的以前的數據
JScrollPane scrollPane_2;
DefaultTableModel model;
JTable table;
public void method_1(){
String[][] data = new String[10][4];
for(int i=0;i<10;i++)
for(int j=0; j<4; j++)
data[i][j] = "one";
String[] column = { "Column_1", "Column_2", "Column_3", "Column_4"};
model = new DefaultTableModel(data, column);
table = new JTable(model);
scrollPane_2 = new JScrollPane(table);
panel_6.add(scrollPane_2);
panel_6.revalidate();
}
public void method_2(){
String[][] data = new String[8][2];
for(int i=0;i<8;i++)
for(int j=0; j<2; j++)
data[i][j] = "Row_"+i;
String[] column = { "Column_1", "Column_2"};
model = new DefaultTableModel(data, column);
model.fireTableDataChanged();
table = new JTable(model);
scrollPane_2 = new JScrollPane(table);
panel_6.add(scrollPane_2, BorderLayout.CENTER);
panel_6.revalidate();
}
嘗試重新驗證()和重繪()上scollPane和麪板,也fireTableDataChanged()上的DefaultTableModel,沒有任何成功
該訣竅...創造新的JTable和JScrollPane的是給這個問題。 – Jerry