Java:显示从同一AbstractTableModel创建的两个不同的JTable

时间:2013-02-20 14:22:46

标签: java swing jtable abstracttablemodel

我在显示由同一JTables创建的两个不同AbstractTableModel时遇到问题。我并不认为显示AbstractTableModel的代码很重要,但如果我被要求,我也可以提供它。

我只调用了两次扩展此AbstractTableModel的类,用于创建表的两个arraylists。

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,所以我认为它与我称之为班级的方式有关。

3 个答案:

答案 0 :(得分: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 :(得分:0)

我认为传递给SwitchTableModel user_decide和duplicates的值都具有相同的值。否则上述代码中没有问题。

答案 2 :(得分:-1)

尝试将两个单独的滚动窗格添加到面板,然后将JTable添加到滚动窗格。除此之外,你还不清楚你的显示问题到底是什么,JTables没有出现,或者数据是不是不同......等等