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

我只是两次调用相同的类来扩展此AbstractTableModel,以扩展用于创建表的两个arraylist。

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,因此我认为这与我调用类的方式有关。

最佳答案

问题来自不适当的static关键字。

public static int [][] data;


static表示该变量的值在所有实例中都相同。相反,请将您的data放在您的SwitchTableModel中,而不要使其成为static。这将立即解决您的问题。

就像是:

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

09-11 18:05