Uma coluna foi atualizada e eu preciso atualizar outros campos

4 respostas
A

Eu implementei a minha TableModel e lá tem este método:

public void setValueAt(Object value, int row, int column) { if(column == 2){ this.listItemsConsumo.get(row).setQuantidade(((Integer)value).intValue()); } // Atualiza a quantidade fireTableCellUpdated(row, column); // Atualiza valor de acordo com a novo quantidade fireTableCellUpdated(row, column+1); }

Basicamente eu tenho uma JTable que tem a coluna quantidade, quando esta coluna é alterada, o valor total do produto (também uma coluna) e a quantidade se alteram. Mas ai o que acontece, além disso eu preciso atualizar um campo que não esta na tabela referente ao valor total consumido. Como que eu faço?

Obrigada!! :slight_smile:

4 Respostas

Rafael_Nunes

Talvez a idéia em si possa te ajudar.
Dá uma olhada no padrão ‘Observer’.

T

Digamos que tm seja uma variável que contém seu TableModel. Então você pode chamar algo como:

TableModel tm = suaTabela.getModel();
tm.addTableModelListener (new TableModelListener() {
    public void tableChanged(TableModelEvent e) {
        // calcular o valor total consumido
        // setar o valor total consumido na sua tela.
    }
});
A

hummm… eu já tinha usado algo similar ao seu código, mas para identificar uma mudança de linha, usei ListSelectionListener, ou algo assim. Vou tentar sua sugestão, obrigada.

A

Pior que não funcionou, nem invoca… Eu pensei em colocar de alguma forma um listener para uma tecla e . De alguma forma quando alterar a quantidade tem que invocar algum método para recalcular a consumo total.

Criado 22 de maio de 2007
Ultima resposta 23 de mai. de 2007
Respostas 4
Participantes 3