Botões não funcionam!

Tentei usar o dispose no menubar FIM e limpar os campos com o botão limpar mas nada !

[code]import javax.swing.*;

import java.awt.event.;
import java.awt.
;

public class A extends JFrame implements ActionListener {
private JDesktopPane desktop;

private JMenuItem fim, empregado, dados;

private JLabel label, label2, label3, label4, label5;

private JButton cadastro, salario, limpar;

public A() {

	super("Janela Principal");
	// cria JDesktopPane
	desktop = new JDesktopPane();
	JMenu cadastro = new JMenu("Cadastro");
	cadastro.setMnemonic('C');
	empregado = new JMenuItem("Empregado");
	fim = new JMenuItem("Fim");
	empregado.addActionListener(this);
	cadastro.add(empregado);
	cadastro.add(fim);
	JMenu visualizar = new JMenu("Visualizar");
	dados = new JMenuItem("Dados");
	visualizar.add(dados);
	JMenuBar bar = new JMenuBar();
	bar.add(cadastro);
	bar.add(visualizar);
	setJMenuBar(bar);
	getContentPane().add(desktop, BorderLayout.CENTER);
	setSize(1000, 1000);
	setVisible(true);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
	// cria um JInternalFrame e adiciona no JDesktopPane
	JInternalFrame internal = new JInternalFrame("Empregado", true, true,
			true, true);

	internal.setResizable(false);

	JPanel c = new JPanel();
	getContentPane().add(c);
	c.setLayout(new GridLayout(0, 1));

	label = new JLabel("Nome:");
	c.add(label);
	JTextField text1 = new JTextField(10);
	c.add(text1);

	label2 = new JLabel("Função:");
	c.add(label2);
	JTextField text2 = new JTextField(10);
	c.add(text2);

	label3 = new JLabel("PIS/PASEP:");
	c.add(label3);
	JTextField text3 = new JTextField(10);
	c.add(text3);

	label4 = new JLabel("Salário Base:");
	c.add(label4);
	JTextField text4 = new JTextField(10);
	c.add(text4);

	label5 = new JLabel("IR:");
	c.add(label5);
	JTextField text5 = new JTextField(10);
	c.add(text5);

	c.add(cadastro = new JButton("Cadastrar"));
	c.add(salario = new JButton("Visualizar salário"));
	c.add(limpar = new JButton("Limpar"));

	if (e.getSource() == limpar) {
		text1.setText(" ");
		text2.setText(" ");
		text3.setText(" ");
		text4.setText(" ");
		text5.setText(" ");

	}

	internal.add(c);

	setSize(700, 400);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setVisible(true);

	internal.setSize(400, 300);
	desktop.add(internal);
	internal.setVisible(true);

	if (e.getSource() == fim) {
		dispose(desktop);
	}

}

private void dispose(JDesktopPane desktop2) {
	// TODO Auto-generated method stub

}

public static void main(String args[]) {
	A janela = new A();
}

}[/code]

Se alguem puder me ajudar a desencalhar e fazê-los funcionar eu agradeceria muito !

Pra ajudar na localização:

[code]if (e.getSource() == limpar) {
text1.setText(" “);
text2.setText(” “);
text3.setText(” “);
text4.setText(” “);
text5.setText(” ");

	}[/code]

if (e.getSource() == fim) { dispose(desktop); }

Bom dia,

Amigo vc não fez o registro do evento no construtor:

public A() {   

         limpar.addActionListener(this);
         //o resto segue a mesma lógica
         }

}