JTable - capturar valores da tabela

3 respostas
K

Bom dia a todos

Estou com uma duvida.
Tenho uma JTable criada que possui celulas em branco para que o usuario possa preenche-la.
nela existem os campos produto, qtde, uskg, cambio, total.

Ao clicar em um botao calcular, e efetuado o calculo qtde * uskg * cambio e o resultado deverá aparecer na celula total.

Como devo proceder para consertar este erro, ou seja, deixar o mesmo tipo de variavel tanto na celula qto na minha variavel?

class listenerCalcula implements ActionListener{
    public void actionPerformed(ActionEvent e){
        Double qtde = (Double)tab.getValueAt(0,1);
        Double uskg = (Double)tab.getValueAt(0,2);
        Double cambio = (Double)tab.getValueAt(0,3);
        Double total = qtde * uskg * cambio;           
    }
}

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double

Alguem pode me ajudar?
Agradeço desde ja

3 Respostas

davidbuzatto

Você está fazendo um cast para Double do que na verdade é uma String.
O modelo está armazenando os valores como String e não como Double, então você não pode fazer o cast.

Faça assim:
// note o autoboxing/unboxing nos exemplos.

double d = Double.parseDouble( String.valueOf( tab.getValueAt(0,1) ) );
// ou
double d = new Double( String.valueOf( tab.getValueAt(0,1) ) );
// ou
Double d = Double.parseDouble( String.valueOf( tab.getValueAt(0,1) ) );
// ou
Double d = new Double( String.valueOf( tab.getValueAt(0,1) ) );

Até mais!

K

David.
Brigadao cara.
Deu certo.

davidbuzatto

De nada :smiley:

Até mais!

Criado 19 de dezembro de 2007
Ultima resposta 19 de dez. de 2007
Respostas 3
Participantes 2