Erro na calculadora

1 resposta
B

não consigo fazer meu codigo funcionar por causa do casting quem puder me ajudar desde já agradeço!!

import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class calculadora2 extends JFrame implements ActionListener {

	JTextField visor=new JTextField();
	JTextField visor2=new JTextField();
	JTextField visor3=new JTextField();
	JFrame janela=new JFrame();
	JButton btnSoma=new JButton("+");
	JButton btnSubtracao=new JButton("-");
	JButton btnDivisao=new JButton("/");
	JButton btnMultiplicacao=new JButton("*");
	JButton btnLimpar=new JButton("Limpar");
double result;
double n1;
double n2;

public  calculadora2(){
	JFrame janela=new JFrame();
janela.setTitle("Calculadora 1.0");
janela.setSize(400,500);
janela.setVisible(true);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLocationRelativeTo(null);
janela.setResizable(false);
janela.setLayout(null);
janela.add(btnSoma);
janela.add(btnSubtracao);
janela.add(btnMultiplicacao);
 janela.add(btnDivisao);
 janela.add(btnLimpar);
btnSoma.setBounds(50,250,50,40);
btnSubtracao.setBounds(130,250,50,40);
btnMultiplicacao.setBounds(210,250,50,40);
btnDivisao.setBounds(290, 250, 50, 40);
btnLimpar.setBounds(140, 350, 100, 40);
JLabel legenda =new JLabel("Digite o primeiro número:");
legenda.setBounds(20, 50, 400, 40);
	visor.setBounds(220, 50, 150, 40);
janela.add(visor);
janela.add(legenda);
JLabel legenda3=new JLabel("Resultado:");
JLabel legenda2=new JLabel("Digite o Segundo número: ");
legenda2.setBounds(10, 100, 400, 40);
visor2.setBounds(220, 100, 150, 40);
visor3.setBounds(220,150,150,40);
legenda3.setBounds(20,150,400,40);
janela.add(legenda2);
janela.add(visor2);
janela.add(legenda3);
janela.add(visor3);
double n1=Double.parseDouble(visor.getText());
double n2=Double.parseDouble(visor2.getText());
btnSoma.addActionListener(this);
btnSubtracao.addActionListener(this);
btnMultiplicacao.addActionListener(this);
btnDivisao.addActionListener(this);
btnLimpar.addActionListener(this);




}
public void actionPerformed(ActionEvent e) {
	// TODO Auto-generated method stub
	if((visor.getText().trim().equals("") )&& (visor2.getText().trim().equals(""))) {
		
		if(e.getSource()== btnSoma){
			result=(n1+n2);
			visor3.setText(""+result);
		}
			
		if(e.getSource()==btnSubtracao){
		result=(n1-n2);
		visor3.setText(""+result);	
	}		
		if(e.getSource()==btnMultiplicacao){
			result=(n1*n2);
			visor3.setText(""+result);
		}
		
		if(e.getSource()==btnDivisao){
			if( n1 != 0 && n2 !=0){
				result=(n1/n2);
				visor3.setText(""+result);
				}
			else{
				JOptionPane.showMessageDialog(null,"Não se dividi por 0!!!!!! ");
				
			}
		
		
		}
		
		else{
			JOptionPane.showMessageDialog(null,"existe Campo Vazio !!! ");
			
		}
		
		
		
		
	}
	
	
}
}
dá erro e não recebe os valores

1 Resposta

U

bruno george localizei alguns problemas simples no teu código.

O principal dele é que você está inicializando as variáveis n1 e n2 já tentando pegar o valor do visor, e isso sempre dará erro pois os jtext sempre iniciarão vazios (da forma que você implementou). Dá uma verificada nisso.

Segundo sempre que você for utilizar o n1 e n2 é necessário que você capture os valores que estão no visor (jtext).

E por último tentar dar uma checada no if que foi implementando para verificar se existe algum campo vazio, pois não está rodando corretamente.

Criado 18 de setembro de 2014
Ultima resposta 28 de set. de 2014
Respostas 1
Participantes 2