TableModel vs ColumnModel: quem possui o valor da coluna?

Qual é a diferença entreJTable.getModel().getColumnName() eJTable.getColumnModel().getColumn(index).getHeaderValue()? Os dois parecem não compartilhar nenhum dado. Meu palpite é queTableModel.getColumnName() indica a representação textual de uma coluna enquantoTableColumn.getHeaderValue() eTableColumn.getHeaderRenderer() determine a aparência da coluna (não precisa ser texto sem formatação).

O que garante que os dois sejam mantidos sincronizados? O que acontece se os dois entrarem em conflito?

questionAnswers(1)

yourAnswerToTheQuestion