ListSelectionListener na JTable

2 respostas
B

Galera,

Tenho uma JTable, onde clico numa linha dela e pego os dados desse registro para montar um menu popup. Para pegar o valor desses dados criei um Listener. Só que quando eu ordeno minha tabela e clico numa linha, o ListSelectionListener está carregando os dados do registro que estava nessa posição da tabela anteriormente, antes da ordenação.

O problema é que quando ordeno a JTable, apenas a view é atualizada. Gostaria de que me ajudassem a ordenar o model também.

Estou usando o seguinte código para ordenação:

RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tableModel);  
jTableAgentes.setRowSorter(sorter);

E o seguinte listener para pegar o valor, dados da linha:

class SelecionaAgente implements ListSelectionListener  
        {  
            private JTable table;  
              
            public SelecionaAgente(JTable tb)  
            {  
                this.table = tb;  
            }  
              
           public void valueChanged(ListSelectionEvent e)  
           {  
               int maxRows;  
               int[] selRows;  
                 
               if(!e.getValueIsAdjusting())  
               {  
                   selRows = table.getSelectedRows();  
                     
                   if(selRows.length > 0)  
                   {  
                       TableModel tm = table.getModel();  
                       nroAgenteSelecionado = tm.getValueAt(selRows[0],0);  
                       nomeAgenteSelecionado = tm.getValueAt(selRows[0],1);  
                   }                 
               }  
           }  
       }

2 Respostas

G

Bom dia,

Também estou com este problema, tentei resolver com o metodo convertRowIndexToModel e também não consegui.

Você descobriu como resolver isto??

Agradeço desde ja.

B

Caro Gustavo,

Ainda não consegui não, mas assim que conseguir posto aqui, beleza? Qualquer progresso que vc tiver, posta aí também, falou?

Abraços

Criado 17 de setembro de 2007
Ultima resposta 20 de set. de 2007
Respostas 2
Participantes 2