Calculo através do JTextField

3 respostas
C

Galera, o seguinte, preciso fazer algo assim:

valor1=Integer.parseInt(caixa1.getText());
valor2=Integer.parseInt(caixa2.getText());

caixa3.setText(valor1+valor2);

Pegar o valor de dois JTextField e depois de um FocusEvent de focusLost (depois q perder o foco), ou depois de teclar enter; jogar o resultado num terceiro JTextField.

O Problema é o seguinte, se tem um valor nesse campo e o usuário apaga esse valor e deixa sem nada e dá ENTER ou clica em outro campo, dá o maior pau e não altera a soma pq ele tenta somar com um valor q não existe, certo? Alguém tem alguma idéia de como eu posso fazer ? Tipo, qdo perder o foco e o campo estiver “” (vazio) ou null, atribuir “0” a esse campo.

Talvez seja uma coisa simples mas não to conseguindo ver. Já tentei um monte de jeito e de repente é algo obvio… :slight_smile:

Se alguém puder me ajudar ficarei mto grato !

Obrigado!
Cristian Ravagnolli

3 Respostas

G

Vc precisa usar tratamento de exeções… fica assim…

try{

num1 = Integer.parseInt(campo1.getText());

num2 = Integer.parseInt(campo2.getText());

resposta = num1+num2;

result.setText(String.valueOf(resposta));

}

catch(Exception ex){

System.out.println(Não foi possível fazer o cálculo);

}

ou usa um if…

if ( (campo1.getText().compareTo("") ==0)  || (campo2.getText().compareTo("") ==0)){

System.out.println(Não foi possível fazer o cálculo!!);

}

else{

//faz a conta

}

Acho que é isso…

J

voce mesmo respondeu sua pergunta
eheh vc pode atribuir 0 se o campo for igual a “” ao perder o foco .

e tb pode , antes de fazer o calculo, verificar se os dois campos estao com valores diferentes de “”, se nao estiverem manda uma mensagem avisando

[]'s

D

dae Cristian..., blz???

kra eu fiz assim oh... dá uma olhada ae

private void jTextField2FocusLost(java.awt.event.FocusEvent evt) {
        try{
            valor2 = Integer.parseInt( jTextField2.getText() );
        }
        catch (Exception e){
            valor2 = 0;
            jTextField2.setText( "" + 0 );
        }
    }

    private void jTextField1FocusLost(java.awt.event.FocusEvent evt) {
        try{
            valor1 = Integer.parseInt( jTextField1.getText() );
        }
        catch (Exception e){
            valor1 = 0;
            jTextField1.setText( "" + 0 );
        }
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        soma = valor1 + valor2;
        jTextField3.setText( soma + "" );
    }

qualquer duvida manda ae... :wink:

flw... :)

Criado 1 de dezembro de 2004
Ultima resposta 4 de dez. de 2004
Respostas 3
Participantes 4