Non capisco quale sia l'errore in questo programma!!!!
posto il codice sotto.. programmo in java, il programma dovrebbe essere una sorta di calcolatrice..

codice:
//importazione
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

class Calcolatore extends JFrame {
	
	private JLabel op1=new JLabel ("OPERANDO 1");
		private JTextField casop1=new JTextField(5);
						
	private JLabel testorisultato=new JLabel("RISULTATO");
		private JTextField casrisultato=new JTextField (7);
			
	private JButton piu= new JButton ("+");
		
	private JButton meno=new JButton ("-");
		
	private JButton per=new JButton ("x");
		
	private JButton diviso=new JButton ("/");
		
	private JButton radice=new JButton("V¯");
		
	private JButton potenza=new JButton("^¨");
	
	//creazione variabile accumulatore
	String acc1=casop1.getText();
	double accumulatore=Double.parseDouble(acc1);
	
	public class AscoltatoreSomma implements ActionListener{
		public void actionPerformed(ActionEvent a){
			String som1=casop1.getText();
			double s1=Double.parseDouble(som1);
			double risSom=s1+accumulatore;
			casrisultato.setText(""+risSom);
		}
	}

	public class AscoltatoreSottrazione implements ActionListener{
		public void actionPerformed(ActionEvent a){
			String sot1=casop1.getText();
			double f1=Double.parseDouble(sot1);
			double risSot=accumulatore-f1;
			casrisultato.setText(""+risSot);
		}
	}

	public class AscoltatoreMoltiplicazione implements ActionListener{
		public void actionPerformed(ActionEvent a){
			String mol1=casop1.getText();
			double m1=Double.parseDouble(mol1);
			double risMol=m1*accumulatore;
			casrisultato.setText(""+risMol);
		}
	}

	public class AscoltatoreDivisione implements ActionListener{
		public void actionPerformed(ActionEvent a){
			String div1=casop1.getText();
			double d1=Double.parseDouble(div1);
			double risDiv=accumulatore/d1;
			casrisultato.setText(""+risDiv);
		}
	}
	
	public class AscoltatoreRadice implements ActionListener{
		public void actionPerformed(ActionEvent a){
		        String rad1=casop1.getText();
			double r1=Double.parseDouble(rad1);
			accumulatore=Math.sqrt(r1);
			casrisultato.setText(""+accumulatore);
		}
				
	}
	
	public class AscoltatorePotenza implements ActionListener{
		public void actionPerformed(ActionEvent a){
			String pot1=casop1.getText();
			double p1=Double.parseDouble(pot1);
			double risPot=accumulatore;
			for (int i=1;i<p1;i++){
				risPot=risPot*p1;
			}
			casrisultato.setText(""+risPot);
		}
		
	}

private AscoltatoreSomma ascoltaSomma=new AscoltatoreSomma();
private AscoltatoreSottrazione ascoltaSottrazione=new AscoltatoreSottrazione();
private AscoltatoreMoltiplicazione ascoltaMoltiplicazione=new AscoltatoreMoltiplicazione();
private AscoltatoreDivisione ascoltaDivisione=new AscoltatoreDivisione();
private AscoltatoreRadice ascoltaRadice=new AscoltatoreRadice();
private AscoltatorePotenza ascoltaPotenza=new AscoltatorePotenza();
	
	
	public Calcolatore(){
		
		//GRAFICA
		
		
		setLayout(null);
		
		
		//operando1
		add(op1);
		add(casop1);
		
		add (piu);
		piu.addActionListener(ascoltaSomma);
		
		add(meno);
		meno.addActionListener(ascoltaSottrazione);
		
		add(per);
		per.addActionListener(ascoltaMoltiplicazione);
		
		add(diviso);
		diviso.addActionListener(ascoltaDivisione);
		
		add(radice);
		radice.addActionListener(ascoltaRadice);
		
		add(potenza);
		potenza.addActionListener(ascoltaPotenza);
		
		add(testorisultato);
		add(casrisultato);
		
		//Sistemazione Grafica X;Y;L;A;
		//LABEL
		op1.setBounds(30, 30, 100, 20);
		testorisultato.setBounds(30,140,100,20);
		//TEXT FIELD
		casop1.setBounds(110, 30, 100, 20);
		casrisultato.setBounds(110,140,100,20);
		//BOTTONI
		piu.setBounds(220,30,50,50);
		meno.setBounds(220,81,50,50);
		per.setBounds(220,132,50,50);
		diviso.setBounds(271,30,50,50);
		radice.setBounds(271,81,50,50);
		potenza.setBounds(271,132,50,50);
				
	}
	

//parentesi fine classe	
}


public class ProgCalc2{
	public static void main(String[]args){
		Calcolatore f=new Calcolatore();
		
		f.setTitle("  CALCOLATRICE  SALVO  CATALFAMO");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		f.setSize(340, 240); 
		f.setVisible(true);
		
	}

//parentesi fine programma	
}