[RESOLVIDO] Problemas com ordenação e Renderização de jTable

6 respostas
R

Olá pessoal,

Tenho uma jTable que está recebendo um renderer para deixar o texto verde numa determinada situação e vermelho em outra.
Quando a tabela é apresentada pela primeira vez, ela fica certinha. Mas se eu clico para organizá-la, o conteúdo das linhas é alterado mas a formatação não. Por exemplo: A tabela tem a linha um com um item que em vermelho e a linha com dois com um item em verde.
Ao reorganizar a tabela, o item da linha dois foi para a linha um mas deveria continuar aparecendo em verde e vice-versa. Mas isso não acontece.

Alguém teria algum palpite de como resolver isso?

abraço

6 Respostas

R

Se você estiver usando um TableCellRenderer para mudar as cores da célula desejada, não se esqueça de usar JTable.convertColumnIndexToModel() e JTable.convertRowIndexToModel() para mapear corretamente linhas e colunas deslocadas em relação à posição original.

R

Roger,

Fiquei em duvida de como utilizar estes métodos.
Eu já havia imaginado que eu precisaria reorganizar o model para que o view ficasse correto.
Mas minha duvida era (em parte ainda é):

  • como faço para capturar que a tabela a view foi reorganizada por uma determinada coluna?
  • onde exatamente são chamados os métodos que você me disse?

Sou iniciante e estou bem perdido com essa situação.

Desde já agradeço sua atenção

R

Segue em anexo um exemplo de como usar JTable.convertColumnIndexToModel() para levar em conta colunas deslocadas, de forma análoga pode-se usar JTable.convertRowIndexToModel() para levar em conta linhas deslocadas. Os métodos citados devem ser usados numa classe que implementa a interface TableCellRenderer.

R

Roger,

O código funcionou perfeitamente!
Muito obrigado pela ajuda!!

Abraço

R

Grato em ter sido útil :slight_smile: Uma última sugestão: quanto um tópico seu tiver uma solução, seja indicada por outra pessoa ou encontrada por você, inclua no título do tópico a tag [RESOLVIDO]. Isso facilita a vida de outros participantes do fórum que estejam procurando soluções parecidas.

R

Olá Roger,

fiz o que você sugeriu!
Grato por tudo!

Abraço

Criado 22 de julho de 2009
Ultima resposta 12 de ago. de 2009
Respostas 6
Participantes 2