Java 多个 Table 带有复选框的模型相互干扰

Java Multiple Table Models with CheckBoxes Interfering with each other

我有一个函数可以创建一个使用复选框的通用 TabelModel。但是,当我多次调用此方法时,我发现来自两个 table 的复选框相互干扰(单击一个 table,另一个 table 也单击)。

什么可能导致引用相互冲突?

private TableModel<Map<String, Object>> createModel() {
    List<Map<String, Object>> list = new ArrayList<>();
    TableModel<Map<String, Object>> model = new TableModel<Map<String, Object>>( list,
                                                                                 Arrays.asList( "Name", "Enabled" ),
                                                                                 Arrays.asList( "Enabled" ), null ) {

        @Override
        public Object getValueAt( int row, int column ) {
            final Map<String, Object> object = data.get( row );
            return object.get( columnNames.get( column ) );
        }

        @Override
        public Class<?> getColumnClass( int col ) {
            if ( col == 1 ) {
                return Boolean.class;
            }
            return super.getColumnClass( col );
        }

        @Override
        public void setValueAt( Object aValue, int row, int column ) {
            final Map<String, Object> object = data.get( row );
            object.put( columnNames.get( column ), aValue );
            fireTableCellUpdated( row, column );
        }
    };
    return model;
}
JTable tableA = new JTable ( createModel());
JTable tableB = new JTable ( createModel());

即使 tableA 和 tableB 使用两个不同的模型(或者它们是?),当我单击 tableA 中的复选框时,tableB 也对此做出反应。不知何故,复选框变得纠缠在一起。为什么会这样?

字段 'data' 填充了完全相同的对象,在本例中是一个地图。数据只是一个对象,它包含此模型包含的任何数据。 MadProgrammer 是正确的,数据正在共享,解决方案是将数据加载到 table 单独的