JTable + ordenação clicando no título

Bom dia amigos!

Venho através desse pedir novamente ajuda de vocês, e agradecer pelas respostas anteriores.
Seguinte, vamos começar pelo início … hehe!

Estou usando um AbstractTableModel baseado no que o Vinicius Godoy Sugeriu em outro tópico.
Estou usando a função abaixo para filtrar o array da JTable a partir de cada letra digitada:

RowFilter< CddTableModel, Object> filtranome = null;  
	RowFilter< CddTableModel, Object> filtrauf = null;  
	
	private void FiltroNome() {
		if (novo == false)
		{
		List<RowFilter<CddTableModel,Object>> filters = new ArrayList<RowFilter<CddTableModel,Object>>(2);  
		{
	        RowFilter<CddTableModel, Object> rf = null;
	        //If current expression doesn't parse, don't update.
	        
	        try {
	        	filtranome = RowFilter.regexFilter("(?i)" + txtNomeCdd.getText(), 1); //(?i) Ignora Case Sensitive
	        	filtrauf = RowFilter.regexFilter("(?i)" + txtUfCdd.getText(), 2); //(?i) Ignora Case Sensitive
	        	
	        	filters.add(filtranome);  
	            filters.add(filtrauf);  
	          
	            rf = RowFilter.andFilter(filters);
        } catch (java.util.regex.PatternSyntaxException e) {
            return;
        }
        sorter.setRowFilter(rf);
        }
		}
    }

Até ai tudo certo, dou um select Ordenando por ordem alfabética do estado, e por ordem alfabética da cidade.
Agora vem o problema:

Se eu clicar no título da JTABLE, ela “Re-Ordena” os campos, por ordem decrescente/crescente
Mas quando eu clico no campo “Código”, ele ordena tudo errado!!!
Por exemplo, em vez de 1,2,3,4,5 … fica 2,9,1,9,10,11,15! (Todos os campos são tratados como String)
Eu seto o sorter dessa maneira:

[b]CddTableModel model = new CddTableModel(listainfocdd);[/b]
		tblCdd.setModel(new CddTableModel(listainfocdd)); 
		[b]sorter = new TableRowSorter<CddTableModel>(model);[/b] 
		[b]tblCdd.setRowSorter(sorter); [/b]

Agradeço a Ajuda de todos, e Um Grande Abraço!

Andrews Moro

Ai eu gostaria de uma das duas soluções:

Solução 1 : Como Bloquear o “Clique” no título da coluna para reordenar os campos?
Solução 2 : Como ordenar corretamente o campo “Código” Composto de números?

Fala Andrews, beleza?

Me responde algumas coisas:

Deixa eu ver se entendi direito…
Suponhamos que você tenha essa lista na sua tabela:

ARVORE
CASA
MESA
PEDRA
TIJOLO
CAMA
ARENA
TIPOIA

Se eu digitar A, a tabela só mostrará ARVORE e ARENA. Se eu digitar ARV, só aparecerá ARVORE na sua JTable. É mais ou menos isso?

Ele busca por caracteres.

Se digitar o “ARV”, só vai trazer o ARVORE

agora se você digitar “SA” vai retornar:
CASA
MESA

Isso está funcionando corretamente, o problema mesmo é como citei no tópico,
o Título das Colunas, quando você clica neles, ele “Re-Ordena” os campos. Por exemplo

COD ------- NOME
5 ------- ANDREWS
3 ------- BNDS
1 ------- FREWS
2 ------- GNWS

Nesse caso está por ordem alfabética! Assim que eu quero que fique. Até ai eu já fiz, o problema é que
Se eu clicar no titulo “COD”, a JTABLE RE-ORGANIZA a tabela por COD, só que de maneira errada retornando por exemplo em ordem Crescente:

COD ------- NOME
1 ------- FREWS
3 ------- BNDS
5 ------- ANDREWS
2 ------- GNWS

Me entende? Por ordem alfabética está certo, o problema seria nos “Números”. Eu queria BLOQUEAR essa “RE-ORDENACAO” ao clicar no título da coluna, ou ordenar os números corretamente.

Uma imagem vale mais que mil palavras, não?

Link da imagem: http://imageshack.us/f/853/ordenacaosistabil.jpg/

Espero que ajude a entender meu problema …
Ele só ficou ordenado “errado” porque eu cliquei no titulo da coluna Código, ai ele quis ordenar decrescente.
como bloquear esse título??

Galera, pesquisando encontrei:

[list][b]isSortable

public boolean isSortable(int column)

Returns true if the specified column is sortable; otherwise, false.

Parameters:
    column - the column to check sorting for, in terms of the underlying model 
Returns:
    true if the column is sortable 
Throws:
    IndexOutOfBoundsException - if column is outside the range of the underlying model[/b][/list]

Alguem poderia me ajudar a implementar? Não consegui ainda …

Conto com a ajude de vocês, e novamente Muito Obrigado!

final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model) { @Override public boolean isSortable(int column) { return false; } };

Utilizando a função acima, não consegui mais filtrar os campos pelo JTEXTFIELD, porém bloqueou a “Re-Organização” dos campos.
Acham que é este o caminho??

Por favor, evite postar tópicos SOMENTE COM LETRAS MAIÚSCULAS no título.

E dê uma olhada no TableFilter do projeto Towel (link do projeto na minha assinatura). Ele faz isso que você quer e um pouco mais.
Ele lembra bastante o auto-filtro do excel.

Vou dar uma olhada ViniGodoy, obrigado.
Desculpe por estar em maiúsculo, como o sistema aqui da empresa é case sensitive acabei esquecendo de desligar o CAPS.