bem já me sugeriram isso em outro forum para nao reescrever aqui tudo i que ja escrevi lá vou postar em Quote o discursão.
[quote]
Tem como você obter a ordenação de uma coluna sim, nosso amigo Swing utiliza MVC ao extremo então, infelizmente, o acesso a alguns recursos nem sempre é trivial.
Já consultou a documentação do RowSorter?
Ele tem uma inner-class chamada SortKey, que possui o método getSortOrder() que retorna um enum do tipo SortOrder
Baseie-se no código abaixo, não fiz nenhum teste, mas deve funcionar
- List<RowSorter.SortKey> sortKeys = meuObjetoRowSorter.getSortKeys();
- RowSorter.SortKey sortKey = sortKeys.get(indiceDaColuna);
- SortOrder sortOrder = sortKey.getSortOrder();
- switch (sortOrder) {
-
case ASCENDING :
-
System.out.println("ORDENACAO ASCENDENTE");
-
break;
-
case DESCENDING :
-
System.out.println("ORDENACAO DECENDENTE");
-
break;
-
case UNSORTED :
-
System.out.println("NÃO ORDENADO");
-
break;
-
default :
-
System.out.println("Não deveria passar aqui");
-
break;
- }
Não deu certo, ta dando uma exceção IndexOutOfBoundsException, na linha
RowSorter.SortKey sortKey = sortKeys.get(col);
Na verdade que tipo de lista é essa que o método getSortKeys() retorna?
abaixo segue o método que fiz para retornar a ordem do sorter.
-
public static SortOrder getOrderSort(TableRowSorter sort, int col){
-
List<RowSorter.SortKey> sortKeys = sort.getSortKeys();
-
System.out.println(sortKeys.size());
-
RowSorter.SortKey sortKey = sortKeys.get(col);
-
SortOrder sortOrder = sortKey.getSortOrder();
-
return sortOrder;
-
}
public static SortOrder getOrderSort(TableRowSorter sort, int col){ List<RowSorter.SortKey> sortKeys = sort.getSortKeys(); System.out.println(sortKeys.size()); RowSorter.SortKey sortKey = sortKeys.get(col); SortOrder sortOrder = sortKey.getSortOrder(); return sortOrder; }
grato pela ajuda.
eu sei que é uma exceção referente ao indice da lista, mas ué eu estou passando um valor que esta dentro do intervalo da quantidade de colunas da tabela, ou seja, minha tabela tem 10 colunas sendo assim eu posso passar como parametro o intervalo de 0 a 9, eu estou passando 1 como parametro.
Se meu raciocinio está correto a linha
view plaincopy to clipboardprint?
List<RowSorter.SortKey> sortKeys = sort.getSortKeys();
cria uma lista com 10 elementos RowSorter.SortKey pq em minha tabela tem 10 colunas. Usei o
view plaincopy to clipboardprint?
-
System.out.println(sortKeys.size());
System.out.println(sortKeys.size()); para testar e ver se realmente a lista tem o mesmo número de elementos que o meu número de colunas e o resultado foi 0, ou seja, quando o método
view plaincopy to clipboardprint?
-
getOrderSort(TableRowSorter sort, int col)
getOrderSort(TableRowSorter sort, int col) é chamado alista é criada como vazia, ou seja, 0 elementos. Precebi também que quando clico no título de algumas colunas para ordenar as linhas e depois chamo o metodo
view plaincopy to clipboardprint?
- getOrderSort(TableRowSorter sort, int col)
getOrderSort(TableRowSorter sort, int col) ele passa a ter 3 elementos.
afinal a lista sortKeys não era pra ter a mesma quantidade de elementos que a minha quantidade de colunas independente de ja ter ou não alguma coluna ordenada?
Dei uma olhada na doc da SortKey e parece que não tem nada aver com o número de colunas da tabela.
ai a linha
-
RowSorter.SortKey sortKey = sortKeys.get(col);
RowSorter.SortKey sortKey = sortKeys.get(col); fica meio que infuncional pq a lista não tem a mesma quantidade de elementos que o número de colunas da minha tabela.
O que eu quero e fazer um metodo em que eu passe como parametro o número da coluna e o objeto TableRowSorter e ele me diga se a coluna está em ordem crescente, decrescente ou não está ordenada, e para isso baseando-me no seu exemplo a lista teria que ter 10 elementos que representariam as 10 colunas da minha tabela.
grato!
Andei dando uma olhada na doc do getSortKeys() cara não entendi ainda o que esse método faz. A doc diz que ele armazena umas especies de chaves, mas fica a questão, chave de que? de onde? Baseado no seu exemplo achei que ele armazenasse objetos que representariam as minhas colunas na JTable. Mas pelo que vi não se trata disso.
Agradeço a atenção. [/quote]
bem no outro forum paramos nessa estaca. O que vc me diz?