Erro na calculadora

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

[code]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 !!! ");
		
	}
	
	
	
	
}

}
}[/code]
dá erro e não recebe os valores

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.