JTable fireTableStructureChanged () удаляет пользовательские средства визуализации столбцов - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть JTable, что имя столбца изменится. После изменения имени столбца -

  table.getColumnModel().getColumn(tp.ccol).setHeaderValue(newName);
  model.fireTableStructureChanged() // Does not matter if I call this or not

пользовательский рендер, который я установил для столбца (0) -

table.getColumnModel().getColumn(0).setCellRenderer(model); 

, полностью игнорируется, и таблица перерисовывается с использованием значения по умолчанию рендер для этого столбца.

Я должен сбросить всю информацию столбца -

getColumnModel().getColumn(0).setCellRenderer(model);
getColumnModel().getColumn(0).setResizable(false);
getColumnModel().getColumn(0).setMaxWidth(40);

Затем вызвать

 model.fireTableDataChanged();

, чтобы столбец 0 отображался правильно. Есть ли способ обойти это или это, как это должно работать? Это очень много для go, хотя для изменения имени столбца, и таблица перерисовывается как минимум дважды. Если бы я использовал кучу различных пользовательских средств визуализации, это было бы грязно.

Спасибо!

...