Ajuda com Model

3 respostas
W

Olá,

estou com o seguinte problema, tenho uma model com algumas linhas preenchidas, clico em uma delas para atualizar e atualizo, porem a linha q foi modificada continua lá e oq foi digitado para ser atualizado gera uma nova linha.

Queria uma maneira de sobrescrever a linha na model q atualizei, alguem poderia me ajudar?

Ja tenho uma variavel q armazena a linah selecionada em outro lugar:

String codigo = areaComposicao.getValueAt(areaComposicao.getSelectedRow(), 0).toString();
linhaSelecionada = Integer.parseInt(codigo);

DefaultTableModel model = new DefaultTableModel();  
            areaComposicao.setModel(model);  
      
            model.addColumn("Código");  
            model.addColumn("Descriçao");  
            model.addColumn("Unidade");  
              
            if (listaComposicaoConsulta != null){  
                for (int i=0; i<listaComposicaoConsulta.size(); i++){      
                      
                    model.insertRow(model.getRowCount(),  
                        new Object[]  
                        {  
                                listaComposicaoConsulta.get(i).getIdProdutoComposicao(),  
                            listaComposicaoConsulta.get(i).getDescricaoProduto(),  
                            listaComposicaoConsulta.get(i).getSiglaUnidade(),  
                              
      
                        }  
                    );  
                }  
            }

3 Respostas

Nicolas_Fernandes

Oi, wesleypc.

Cara, abandona esse lance de DefaultTableModel. É furada!
Olha a dor de cabeça por uma coisa tão simples que é atualizar o registro de uma tabela, não acha?

Olha na minha assinatura sobre como criar seu próprio modelo para JTables, e sua atualização ficará muito simples!
Abraços!

gabrielhof

Olha, o mais recomendável seria criar seu próprio TableModel. DefaultTable é um tanto quanto ruim de trabalhar.
Trabalhar com seu próprio TableModel pode parecer dificil, mas assim que tu entender vai parecer muito mais fácil que utilizar DefaultTableModel.

Mas de qualquer maneira, dando enfoque ao seu assunto. Acho que seu problema está em chamar o método insertRows, que está inserindo uma nova linha.

Marky.Vasconcelos

NÃO use DefaultTableModel! Essa é a dica se voce não quer ter dor de cabeça no futuro.

++

Criado 2 de agosto de 2011
Ultima resposta 2 de ago. de 2011
Respostas 3
Participantes 4