Duvida com jtable

1 resposta
M

ola pessoal
tenho uma tabela com o comando setautocreaterowsorter em true para que a tabeal ordene os dados conforme o usuario vai clicando no nome das colunas
mas quando uma coluna é data ou bigdecimal, a ordenação não sai correta, quando o campo é integer ou string funciona
como resolver isso
obrigado
segue abaixo codigo

linhasLookupAutorizacao = new Vector();

colunasLookupAutorizacao = new Vector();


colunasLookupAutorizacao.add("Autorização"); // 0

colunasLookupAutorizacao.add("Emissora"); // 0

colunasLookupAutorizacao.add("Cliente"); // 0

colunasLookupAutorizacao.add("Agência"); // 0

colunasLookupAutorizacao.add("Centro de Venda"); // 0


TableModelLookupAutorizacao = new DefaultTableModel(linhasLookupAutorizacao, colunasLookupAutorizacao);

jTableLookupAutorizacao = new JTable(TableModelLookupAutorizacao);

jTableLookupAutorizacao.setVisible(true); // tabela visivel

jTableLookupAutorizacao.getTableHeader().setReorderingAllowed(false); // trava

jTableLookupAutorizacao.getTableHeader().setResizingAllowed(true); // trava

jTableLookupAutorizacao.getTableHeader().setBackground(Color.LIGHT_GRAY); // cor

jTableLookupAutorizacao.setForeground(Color.black); // cor da fonte

jTableLookupAutorizacao.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // seleciona

jTableLookupAutorizacao.setSelectionBackground( Color.green ); // cor linha selecionada, nao funciona com cellrender

jTableLookupAutorizacao.setGridColor(Color.lightGray); // cor das linhas

jTableLookupAutorizacao.setShowHorizontalLines(true); // linhas horizontais

jTableLookupAutorizacao.setShowVerticalLines(true); // linhas verticais

jTableLookupAutorizacao.setEnabled(true); // editar dados da tabela - false não edita

jTableLookupAutorizacao.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // auto

jTableLookupAutorizacao.setAutoCreateRowSorter(true); // ordernar a tabela

jTableLookupAutorizacao.setFont(new Font("Dialog", Font.PLAIN, 11));

jTableLookupAutorizacao.getColumnModel().getColumn(0).setPreferredWidth(100); // tamanho

jTableLookupAutorizacao.getColumnModel().getColumn(1).setPreferredWidth(200); // tamanho

jTableLookupAutorizacao.getColumnModel().getColumn(2).setPreferredWidth(350); // tamanho

jTableLookupAutorizacao.getColumnModel().getColumn(3).setPreferredWidth(350); // tamanho

jTableLookupAutorizacao.getColumnModel().getColumn(4).setPreferredWidth(200); // tamanho


jScrollLookupAutorizacao = new JScrollPane(jTableLookupAutorizacao);

jScrollLookupAutorizacao.setVisible(true);

jScrollLookupAutorizacao.setBounds(20, 20, 400, 260);

jScrollLookupAutorizacao.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

jScrollLookupAutorizacao.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

telaLookupAutorizacao.add(jScrollLookupAutorizacao);

1 Resposta

ViniGodoy

No seu TableModel, você deve retornar o tipo de Data para essas colunas.
Se você usa o DefaultTableModel, meus pêsames, estou pedindo para você não usar desde 2008.

Aproveita e dê uma olhadinha na classe de auto-filtro na minha assinatura. :slight_smile:

Criado 5 de maio de 2010
Ultima resposta 5 de mai. de 2010
Respostas 1
Participantes 2