Tratamento de evento

3 respostas
A

Caros, boa tarde!
Sou iniciante em Java e por isso ainda estou com muitas duvidas, uma delas seria a seguinte.
Diante do codigo abaixo, gostaria de saber como Adicionar o codigo de tratamento de eventos adequado para o clique do botao (“Calcula”). Quando um usuario entrar com os dois valores, obrigadoriamente valores reais, e clicar no botao, o tratamento de eventos deve calcular o resultado do produto entre os valores digitados. Se um dos valores digitados nao for um numero, o programa deve exibir a mensagem “Impossivel completar a operaçao!”; caso contrario, a mensagem deve apresentar o resultado. Em ambos os casos, a mensagem deve ser apresentada utilizando-se uma caixa de dialogo.

Obrigado,

import javax.swing.*; 

import java.awt.*; 
import java.awt.event.*; 
public class QuestaoQ extends JFrame { 
JLabel quantidadeLabel, precoLabel; 
JTextField quantidadeCampo, precoCampo; 
JButton calculaBotao; 

public QuestaoQ (){ 
setTitle ("Itens a comprar"); 
setSize (220,120); 
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 

quantidadeLabel = new JLabel ("Quantidade: "); 
precoLabel = new JLabel ("Preco: "); 

quantidadeCampo=new JTextField (10); 
precoCampo = new JTextField (10); 
calculaBotao = new JButton ("Calcula"); 

JPanel content = (JPanel)getContentPane (); 
content.setLayout(new FlowLayout ()); 

content.add (quantidadeLabel); 
content.add (quantidadeCampo); 
content.add (precoLabel); 
content.add (precoCampo); 
content.add (calculaBotao); 



calculaBotao.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e){ 
JOptionPane.showMessageDialog(null, "A soma e:"); 


} 
} 
); 

} 


}

3 Respostas

CrOnNoS

Os valores estão em quantidade e preço certo ?
Use o método getText() destes componentes para obter os valores em formato String
Depois TENTE atribuir esses valores à duas variáveis double com o método parseDouble() da classe Double
por fim faça a multiplicação e qualquer coisa que tenha que ser feito
Pegue tudo que foi feito, coloque dentro de um “try catch” e capture uma NumberFormatException. Dentro do catch dessa excessão coloque o que deve ocorrer quando os valores nas caixas não forem numéricos

A

Amigo, muito obrigado! Fiz conforme o codigo abaixo e deu certo!

calculaBotao.addActionListener(new ActionListener(){   
		    public void actionPerformed(ActionEvent e){ 
		   
		    try {	
		    result =((Float.parseFloat(quantidadeCampo.getText()))+((Float.parseFloat(precoCampo.getText()))));
		    }
		    catch (NumberFormatException s){
		    	System.out.println("Dados invalidos. Impossivel completar a operaçao!"); 
		    
		    }
		              JOptionPane.showMessageDialog(null,"A soma e: "+result);
			
		   }   
		      }
CrOnNoS

Tem um problema: quando falei para “faça tudo mais que precise” antes de “coloque tudo dentro de um try catch” foi para evitar isso hehe

O seu JOptionPane.showMessageDialog(null,"A soma e: "+result); precisa estar dentro do try catch também, senão você vai tentar (talvez conseguir) exibir essa janela MESMO se der erro

Criado 14 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 3
Participantes 2