RESOLVIDO - Evento quando célula perde foco

3 respostas
Gabriel_Tom

Opa, minha dúvida é a seguinte:
Tenho um jTable produtos, e nessa jtable tenho uma coluna quantidade e outra coluna valor total, quero que quando o usuário digitar a quantidade e quando a celula perder o foco, automaticamente setar o valor total que será quantidade*preco.
Como faço isso?
Abraços.

3 Respostas

walissongpi

boa tarde. Bem, vc deverá trabalhar com o evento addPropertyChangeListener.
Dentro do custrutor vai esse código:

modelo = (DefaultTableModel) jTable1.getModel();
jTable1.setModel(modelo);
jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //coloque isto dentro do contrutor

jTable1.addPropertyChangeListener(new java.beans.PropertyChangeListener() {//toda ez que a tabela sofrer uma mudança este evento é chamado.
     public void propertyChange(java.beans.PropertyChangeEvent evt) {
                
        if(jTable1.getSelectedRow()>=0){// quando não tem nenhuma linha selecionada, esse método retorna -1.
            int linha = jTable1.getSelectedRow();
            int qtd = Integer.parseInt(modelo.getValueAt(linha, 0).toString());// coluna 0
            double preco = Double.parseDouble(modelo.getValueAt(linha, 1).toString());//coluna 1
            double total = qtd*preco;
            modelo.setValueAt(total, linha, 2); //linha selecionada e coluna 3
        }

     }
});
dúvidas? 8)
Gabriel_Tom

walissongpi, muito obrigado!
Valeu mesmo!

aliás… to usando o defaultTableModel, agora vou começar a estudar a implementação da minha própria jTable com o ObjectTableModel.

Abraços, muito obrigado!

walissongpi

GabrielTom:
walissongpi, muito obrigado!
Valeu mesmo!

aliás… to usando o defaultTableModel, agora vou começar a estudar a implementação da minha própria jTable com o AbstractTableModel.

Abraços, muito obrigado!


É isso aí. Sou meio lerdo com tabelas…
:roll: t+

Criado 31 de maio de 2010
Ultima resposta 31 de mai. de 2010
Respostas 3
Participantes 2