2013-02-20 48 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的值和重复值具有相同的值。否则在上面的代码中没有问题。

相关问题