2013-02-20 49 views
0

我在顯示由相同AbstractTableModel創建的兩個不同JTables時遇到問題。我真的不認爲這是顯示AbstractTableModel的代碼很重要,但如果我被要求我也可以提出。Java:顯示兩個不同的JTables,它們是由相同的AbstractTableModel創建的

我只是調用兩次相同的類,它擴展了這個AbstractTableModel,用於我用來創建表的兩個數組列表。

final SwitchTableModel model = new SwitchTableModel(user_decide); 
final SwitchTableModel model1 = new SwitchTableModel(duplicates); 
JTable table = new JTable(model); 
JTable table1 = new JTable(model1); 

JFrame frame = new JFrame ("Results"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
final JPanel grid = new JPanel(); 
grid.add(toolbar); 
grid.add(toolbar1); 
grid.add(table); 
grid.add(table1); 
frame.add(grid); 
frame.pack(); 
frame.setVisible(true); 

,我也創建它們是相同的工具欄,我也認爲這是無關緊要的,這就是爲什麼我不張貼代碼 - 我會做,如果你認爲這是必要的。

問題是最後我看到了兩次相同的JTable,所以我想這與我稱之爲類的方式有關。

+0

這個問題是無論從'SwitchTableModel'無論是從'user_decide' /'duplicates'。所以是的,我會建議添加與這些相關的代碼。 – 2013-02-20 14:27:53

+0

但事情是,如果我改變前兩行的順序,那麼它只顯示最後兩次。 – 2013-02-20 14:28:55

+1

發佈您的'SwitchTableModel'的代碼。我會懷疑某個地方不適合使用'static'關鍵字,但是如果沒有代碼,就很難猜測。 – 2013-02-20 14:30:24

回答

2

的問題來自於不恰當的static關鍵字:

public static int [][] data; 

static意味着,該變量的值將是所有實例相同。相反,把你的data放在你的SwitchTableModel裏面,不要讓它static。這將立即解決您的問題。

喜歡的東西:

public class SwitchTableModel extends AbstractTableModel { 
    private int[][] data; 
    //... the rest of your current code. 
} 
-1

嘗試在面板中添加兩個單獨的滾動窗格,然後將這些JTable添加到滾動窗格。除此之外,你不清楚究竟你的顯示問題是什麼,是否JTables沒有顯示出來,或者如果數據沒有不同......等等

0

我認爲傳遞給SwitchTableModel user_decide的值和重複值具有相同的值。否則在上面的代碼中沒有問題。

相關問題