A JTable fica sabendo o que deve ser exibido nas células chamando internamente o método "getValueAt" do TableModel.
As colunas A, B e C representam os índices 0, 1 e 2. No exemplo que está se baseando, tem um switch que está vendo qual é o índice da coluna selecionado e retorna o valor respectivo, no caso X, Y, Z. Ficaria mais ou menos assim:
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// Pega a linha especificada.
SuaClasse seuObjeto = linhas.get(rowIndex);
// Retorna o campo referente a coluna especificada.
switch (columnIndex) {
case 0: // Coluna A
return seuObjeto.getX(); // X para coluna A
case 1: // Coluna B
return seuObjeto.getY(); // Y para coluna B
case 2: // Coluna C
return seuObjeto.getZ(); // Z para coluna C
default:
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
No caso do TableModel, ele é específico para trabalhar com uma classe (Socio, no caso do exemplo). Portanto, os valores X, Y e Z não são passados individualmente para a tabela, e sim um objeto que possuam os atributos X, Y e Z.
Implementando o método getValueAt, se preocupe apenas em passar o objeto específico para o TableModel. A chamada ao método getValueAt e a exibição dos valores na tela ficam a cargo da JTable.