Separar classes

Tenho o seguinte código de uma calculadora simples, tirei numeros e operações para facilitar.
Quero separar em classes este código, mas por exemplo, quando separo a classe Limpar, dá erro, ja tentei corrigí-lo mas não está funcionando…

[quote]
import java.awt.;
import java.awt.event.
;
import javax.swing.JFrame;

class Calc extends JFrame {

TextField txtResult;
Button btnIgual, btnClear, btn1, btn2, btnSom;
float a = 0, b = 0;
char op;
boolean ativado = false, ativado2 = false;

Calc() {

	setBackground(Color.orange);
	setLocation(450, 250);
	setSize(310, 320);
	setLayout(null);
	setTitle(".:calculadora:.");

	txtResult = new TextField("0");
	txtResult.setBounds(60, 60, 118, 25);
	add(txtResult);

	btn1 = new Button("1");
	btn1.setBounds(60, 150, 35, 25);
	add(btn1);

	btn2 = new Button("2");
	btn2.setBounds(100, 150, 35, 25);
	add(btn2);

	btnIgual = new Button("=");
	btnIgual.setBounds(60, 180, 35, 25);
	add(btnIgual);

	btnSom = new Button("+");
	btnSom.setBounds(10, 90, 35, 25);
	add(btnSom);

	btnClear = new Button("C");
	btnClear.setBounds(10, 60, 35, 25);
	add(btnClear);

	setVisible(true);
	btnClear.addActionListener(new Limpar());
	btn1.addActionListener(new Um());
	btn2.addActionListener(new Dois());
	btnSom.addActionListener(new Somar());
	btnIgual.addActionListener(new Resultado());
	addWindowListener(new WindowAdapter() {
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	});
}

class Somar implements ActionListener {
	public void actionPerformed(ActionEvent e) {
		op = '+';
		a = Float.parseFloat(txtResult.getText());
		ativado = true;
	}
}

class Resultado implements ActionListener {
	public void actionPerformed(ActionEvent e) {

		if (ativado2 == false) {
			b = Float.parseFloat(txtResult.getText());
		}

		switch (op) {
		case '+':
			a = a + b;
			txtResult.setText(String.valueOf(a));
			ativado = true;
			ativado2 = true;
			break;

		}
	}
}

class Limpar implements ActionListener {
	public void actionPerformed(ActionEvent e) {
		txtResult.setText("0");
		ativado = false;
	}
}

class Um implements ActionListener {
	public void actionPerformed(ActionEvent e) {

		ativado2 = false;

		if ("0".equals(txtResult.getText()) || (ativado == true)) {
			txtResult.setText("1");
			ativado = false;
		} else
			txtResult.setText(txtResult.getText() + "1");
	}
}

class Dois implements ActionListener {
	public void actionPerformed(ActionEvent e) {

		ativado2 = false;

		if ("0".equals(txtResult.getText()) || (ativado == true)) {
			txtResult.setText("2");
			ativado = false;
		} else
			txtResult.setText(txtResult.getText() + "2");
	}
}

public static void main(String[] arg) {
	Calc ob = new Calc();
}

}

[code]

Qual erro?

Se faço deste modo aparece erro nas linhas 7 e 8!

[code]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class Limpar implements ActionListener {
public void actionPerformed(ActionEvent e) {
txtResult.setText(“0”);
ativado = false;
}
}[/code]

e fazendo deste modo não da erro, mas o programa não funciona!

import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class Limpar implements ActionListener {

	TextField txtResult;
	Button btnIgual, btnClear, btn1, btn2, btnSom;
	float a = 0, b = 0;
	char op;
	boolean ativado = false, ativado2 = false;

	public void actionPerformed(ActionEvent e) {
		txtResult.setText("0");
		ativado = false;
	}
}

A variavel txtResult é da sua classe Calc, e essa classe listener é interna a ela. Qual sua motivação para separar?

é o que quer o meu prof.

Beleza, não tenho certeza, mas acho que o ActionEvent consegue te responder em quem foi disparado o evento. Você não vai poder acessar direto sua variável textfield, vai ter que pegar em quem foi disparado o evento, a partir do ActionEvent e fazer a ação necessária. Vai ter que mudar sua implementação.

vc precisará entender o conceito de Inner-class Listeners. procure.

vou explicar atraves de um exemplo do site:http://www.leepoint.net/notes-java/GUI/events/inner_class_listener.html

import javax.swing.*;
import java.awt.event.*;

class SomePanel extends JPanel {

    private JButton    myGreetingButton = new JButton("Hello");
    private JTextField myGreetingField  = new JTextField(20);

    //=== Constructor
    public SomePanel() {
        ActionListener doGreeting = new GreetingListener();
        myGreetingButton.addActionListener(doGreeting);
        myGreetingField.addActionListener(doGreeting);
        // . . . Layout the panel.
    }


    /////////////////////////// Define inner class as listener.
    private class GreetingListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            myGreetingField.setText("Guten Tag");
        }
    }
}

se ao inves de usar uma inner class(procure e entenda o significa, é báscio e importante), vc utilizasse uma classe externa, a classe em questao não teria acesso aos atributos da classe principal - ex.: myGreetingField

Caso tenha resolvido, favor informar, ou fique a vontade para sanar dúvidas.
Estou à disposição.