Bom dia, estou tentando achar uma solução no meu sistema em java. Eu possuo uma tabela de clubes onde renderiza a imagem da bandeira da nacionalidade do clube. Está funcionando normalmente, porém quando eu aplico o tableRowSorter (para ordenar os itens na tabela), funciona normalmente nas colunas nome do clube, ranking. Porém, na coluna país ela não ordena corretamente. (Segue uma imagem de como está ordenando). Não estou conseguindo achar soluções para resolver o meu problema. Porém acho que está no meu AbstractTableModel. Segue em anexo a imagem da tabela e o código do AbstractTableModel. Desde já agradeço a disposição. Alguém poderia me auxilar?
package modeloBeans;
import java.awt.Image;
import java.util.ArrayList;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.table.AbstractTableModel;
import modeloBeans.BeansImagemTextoTabela;
public class ModeloTabelaClubes extends AbstractTableModel {
public String[] colunas;
public ArrayList linhas=null;
public ModeloTabelaClubes(ArrayList linhas, String[] colunas) {
setLinhas(linhas);
setColunas(colunas);
}
public ArrayList getLinhas(){
return linhas;
}
public void setLinhas(ArrayList linhas){
this.linhas = linhas;
}
public String[] getColunas(){
return colunas;
}
public void setColunas(String[] colunas){
this.colunas = colunas;
}
public int getRowCount(){
return linhas.size();
}
public int getColumnCount(){
return colunas.length;
}
public String getColumnName(int numCol){
return colunas[numCol];
}
public Class getColumnClass(int numCol){
switch(numCol){
case 0: return Integer.class;
case 1: return String.class;
case 2: return BeansImagemTextoTabela.class;
//case 2: return BeansImagemTextoTabela(colunas, "");
case 3: return Integer.class;
//case 0: return BeansImagemTextoTabela.class;
//case 1: return Integer.class;
//case 7: return String.class;
//case 2: return Float.class;
//case 3: return Boolean.class;
//case 4: return Icon.class;
//case 5: return TextAndIcon.class;
//case 6: return Color.class;
default: return Object.class;
}
//return Object.class;
}
public boolean isCellEditable(int numLin, int numCol) {
return false; //Indica que todas as células não são editáveis.
}
public Object getValueAt(int numLin, int numCol) {
//return values[row][column];
Object[] linha= (Object[])getLinhas().get(numLin);
return linha[numCol];
}
}
