Kod edycji / UnEdit JTable nie działa dla ponownie rozmieszczonych kolumn JTable

Używam następującego kodu dla Edit / UnEdit dla moich kolumn JTable, ale gdy użytkownik ponownie ułoży kolumny, następujący kod nie działa SSCCE kodu jest następujący:

    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;

    public class Main {
    public static void main(String[] argv) throws Exception {
    TableModel model = new DefaultTableModel() {
    public boolean isCellEditable(int rowIndex, int mColIndex) {
    boolean flag = false;
            if (isEdit == true) {    
                if ((vColIndex == tblItem.getColumn("Design").getModelIndex())
                        || (vColIndex == tblItem.getColumn("ChangedCategory").getModelIndex())
                        || (vColIndex == tblItem.getColumn("Amount").getModelIndex())) {
                    flag = false;
                } else {
                    flag = true;
                }
            } else {
                flag = false;
            }    
            return flag;
  }
};

JTable table2 = new JTable(model);
}
}

questionAnswers(1)

yourAnswerToTheQuestion