TableRowSorter com Imagem

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];
        
    }
 }

Onde você faz o tableRowSorter?

Na minha tela de editor de equipes. No método onde coloco os itens do bd na tabela. Estou chamando corretamente, mas mesmo assim ordena assim e não informa erro…

        ...    
        ModeloTabelaClubes modelo =  new ModeloTabelaClubes(dados, colunas);
        TabelaClubes_CellRenderer tbl_cellRenderer = new TabelaClubes_CellRenderer();
        
        tbl_clubes.setModel(modelo);
        TableRowSorter<ModeloTabelaClubes> sorter = new TableRowSorter<ModeloTabelaClubes>(modelo);
        
        tbl_clubes.setRowSorter(sorter);
        tbl_clubes.getColumn("ID").setCellRenderer(tbl_cellRenderer);
        tbl_clubes.getColumn("Nome do clube").setCellRenderer(tbl_cellRenderer);
	tbl_clubes.getColumn("País").setCellRenderer(tbl_cellRenderer);
	tbl_clubes.getColumn("Ranking").setCellRenderer(tbl_cellRenderer);
        
        tbl_clubes.setDefaultRenderer(Object.class, new TabelaClubes_CellRenderer());
        tbl_clubes.setDefaultRenderer(BeansImagemTextoTabela.class, new Renderizar_TabelaClubes());
        //tbl_clubes.setBorder(BorderFactory.createEmptyBorder(0,0,0,0));
        tbl_clubes.setShowVerticalLines(false);
        tbl_clubes.setShowHorizontalLines(false);
        tbl_clubes.getColumnModel().getColumn(0).setPreferredWidth(0); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        tbl_clubes.getColumnModel().getColumn(0).setResizable(true);
        tbl_clubes.getColumnModel().getColumn(0).setMinWidth(0);
        tbl_clubes.getColumnModel().getColumn(0).setMaxWidth(0);
        tbl_clubes.getColumnModel().getColumn(1).setPreferredWidth(160); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        tbl_clubes.getColumnModel().getColumn(1).setResizable(true);
        tbl_clubes.getColumnModel().getColumn(2).setPreferredWidth(160); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        tbl_clubes.getColumnModel().getColumn(2).setResizable(true); // Bloqueia o usuário de mexer, redimensionar no tamanho da coluna.  
        tbl_clubes.getColumnModel().getColumn(3).setPreferredWidth(94); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        tbl_clubes.getColumnModel().getColumn(3).setResizable(false); // Bloqueia o usuário de mexer, redimensionar no tamanho da coluna.
        //tbl_clubes.getColumnModel().getColumn(2).setPreferredWidth(100); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        //tbl_clubes.getColumnModel().getColumn(2).setResizable(false); // Bloqueia o usuário de mexer, redimensionar no tamanho da coluna.
        //tbl_clubes.getColumnModel().getColumn(3).setPreferredWidth(124); // Indica o tamanho da tabela, no caso da primeira coluna (Por isso o 0).
        //tbl_clubes.getColumnModel().getColumn(3).setResizable(false); // Bloqueia o usuário de mexer, redimensionar no tamanho da coluna.
        //tbl_clubes.getTableHeader().setReorderingAllowed(false); // Não permite o usuário reordenar o cabeçalho/tabela
        tbl_clubes.setAutoResizeMode(tbl_clubes.AUTO_RESIZE_OFF); // Não permite o usuário redimensionar a tabela.
        tbl_clubes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // O usuário poderá selecionar UM dado somente por vez
        if(txt_idclube.getText()=="1"){
            tbl_clubes.setRowSelectionInterval(0, 0);
        }
        
        conecta.desconecta();
    }