我在显示由同一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.
}