Implementar botao c/ focusListener

Classe onde eu tenho campos nome, identidade etc…

package ObjetosInterfaceGrafica;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.ParseException;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.text.MaskFormatter;

import org.hibernate.cfg.ExtendsQueueEntry;

import InterfaceGrafica.JanelaCadastroAlunos;
import Persistencia.AlunoDAO;

public class ObjetoGraficoDadosPessoais extends JPanel {

	private JTextField campoNome;
	private JFormattedTextField campoDataNascimento;
	private JTextField campoCnpj_Cpf;
	private JTextField campoIdentidade;
	private JTextField campoNaturalidade;
	private JComboBox comboHabilitacao;
	private JTextField campoNumeroHabilitacao;
	private JComboBox comboHabilitacaoPretendida;
	private TitledBorder borderFactory;
	private ObjetoGraficoCnpjCpf cnpj_cpf;

	public ObjetoGraficoDadosPessoais(){

		borderFactory = BorderFactory.createTitledBorder("Dados Pessoais");
		borderFactory.setTitleColor(Color.red);
		super.setBorder(borderFactory);
		super.setLayout(new GridLayout(8,2));
		super.add(new JLabel("Nome:"));
		super.add(new JLabel("Data Nascimento:"));
		super.add(campoNome = new JTextField());
		try {
			super.add(campoDataNascimento = new JFormattedTextField(new MaskFormatter("##/##/####")));
		} catch (ParseException e){e.printStackTrace();}
		super.add(new JLabel("CNPJ/CPF:"));
		super.add(new JLabel("Identidade:"));
		super.add(campoCnpj_Cpf = new JTextField());
		super.add(campoIdentidade = new JTextField());
		super.add(new JLabel("Naturalidade:"));
		super.add(new JLabel("Habilitação:"));
		super.add(campoNaturalidade = new JTextField());
		String [] habilitacoes = {"AB","AC","AD","AE","A","B","C","D","E","F"};
		super.add(comboHabilitacao = new JComboBox(habilitacoes));
		comboHabilitacao.setMaximumRowCount(4);
		super.add(new JLabel("Número Habilitação"));
		super.add(new JLabel("Habilitação Pretendida:"));
		super.add(campoNumeroHabilitacao = new JTextField());
		super.add(comboHabilitacaoPretendida = new JComboBox(habilitacoes));
		comboHabilitacaoPretendida.setMaximumRowCount(4);


		campoCnpj_Cpf.addFocusListener(new FocusAdapter(){
			public void focusGained(FocusEvent e){

				cnpj_cpf = new ObjetoGraficoCnpjCpf();  
				
				
				campoCnpj_Cpf.setFocusable(false);
				campoCnpj_Cpf.setFocusable(true);
			}
		});
	}

	public JTextField getCampoNome() {
		return campoNome;
	}

	public void setCampoNome(JTextField campoNome) {
		this.campoNome = campoNome;
	}

	public JFormattedTextField getCampoDataNascimento() {
		return campoDataNascimento;
	}

	public void setCampoDataNascimento(JFormattedTextField campoDataNascimento) {
		this.campoDataNascimento = campoDataNascimento;
	}

	public JTextField getCampoCnpj_Cpf() {
		return campoCnpj_Cpf;
	}

	public void setCampoCnpj_Cpf(JTextField campoCnpj_Cpf) {
		this.campoCnpj_Cpf = campoCnpj_Cpf;
	}

	public JTextField getCampoIdentidade() {
		return campoIdentidade;
	}

	public void setCampoIdentidade(JTextField campoIdentidade) {
		this.campoIdentidade = campoIdentidade;
	}

	public JTextField getCampoNaturalidade() {
		return campoNaturalidade;
	}

	public void setCampoNaturalidade(JTextField campoNaturalidade) {
		this.campoNaturalidade = campoNaturalidade;
	}

	public JComboBox getComboHabilitacao() {
		return comboHabilitacao;
	}

	public void setComboHabilitacao(JComboBox comboHabilitacao) {
		this.comboHabilitacao = comboHabilitacao;
	}

	public JTextField getCampoNumeroHabilitacao() {
		return campoNumeroHabilitacao;
	}

	public void setCampoNumeroHabilitacao(JTextField campoNumeroHabilitacao) {
		this.campoNumeroHabilitacao = campoNumeroHabilitacao;
	}

	public JComboBox getComboHabilitacaoPretendida() {
		return comboHabilitacaoPretendida;
	}

	public void setComboHabilitacaoPretendida(JComboBox comboHabilitacaoPretendida) {
		this.comboHabilitacaoPretendida = comboHabilitacaoPretendida;
	}
}

Classe Cnpj_cpf

package ObjetosInterfaceGrafica;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

import javassist.expr.Instanceof;

import javax.swing.*;
import javax.swing.text.MaskFormatter;

import Administrativo.Aluno;
import InterfaceGrafica.JanelaCadastroAlunos;
import Persistencia.AlunoDAO;

public class ObjetoGraficoCnpjCpf extends JDialog{

	private JPanel painel;
	private JPanel painelCampo;
	private JPanel painelLocal;
	private JPanel painelBotoes;
	private JRadioButton juridica;
	private JRadioButton fisica;
	private JFormattedTextField campoCnpj_Cpf;
	private MaskFormatter mascara;
	private JComboBox comboLocal;
	private JButton botaoOk;
	private JButton botaoCancelar;

	
	public ObjetoGraficoCnpjCpf(){
		
		super.setTitle("CNPJ/CPF:");
		super.setLayout(new GridLayout(4,1));
        super.setModal(true);
		
		painel = new JPanel();
		painel.setLayout(new GridLayout(1,2));
		painel.add(juridica = new JRadioButton("Pessoa Juridica"));
		painel.add(fisica = new JRadioButton("Pessoa Fisica"));

		juridica.setSelected(true);

		ButtonGroup group = new ButtonGroup();
		group.add(juridica);
		group.add(fisica);

		super.add(painel);

		painelCampo = new JPanel();
		painelCampo.setLayout(null);

		try {
			campoCnpj_Cpf = new JFormattedTextField(mascara = new MaskFormatter("##.###.###/####-##"));
			campoCnpj_Cpf.setBounds(2,2,257,30);
			painelCampo.add(campoCnpj_Cpf);
		} catch (ParseException e) {e.printStackTrace();}

		super.add(painelCampo);

		if(juridica.isSelected() || fisica.isSelected()){
			campoCnpj_Cpf.addFocusListener(new FocusAdapter(){
				public void focusGained(FocusEvent e){
				}
			});
		}

		juridica.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){

				campoCnpj_Cpf.requestFocus();

				try {
					mascara.setMask("##.###.###/####-##");
				} catch (ParseException e1) {e1.printStackTrace();}
			}
		});

		fisica.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){

				campoCnpj_Cpf.requestFocus();

				try {
					mascara.setMask("###.###.###-##");
				} catch (ParseException e1) {e1.printStackTrace();}
			}
		});

		painelLocal = new JPanel();
		painelLocal.setLayout(new GridLayout(1,2));
		painelLocal.add(new JLabel("Procurar em:"));
		
		String [] local ={"Aluno","Funcionario","Instrutor","Produto"};
		
		painelLocal.add(comboLocal = new JComboBox(local));
		super.add(painelLocal);
		
		painelBotoes = new JPanel();
		painelBotoes.setLayout(new GridLayout(1,2));
		botaoOk = new JButton("Ok");	
		botaoCancelar = new JButton("Cancelar");
		painelBotoes.add(botaoOk);
		painelBotoes.add(botaoCancelar);
		super.add(painelBotoes);

		super.setLocation(270,200);
		super.setSize(270,210);
		super.setVisible(true);
	}
	
	public JPanel getPainelBotoes() {
		return painelBotoes;
	}

	public void setBotaoCancelar(JButton botaoCancelar) {
		this.botaoCancelar = botaoCancelar;
	}
}

Meu problema é o seguinte, estou querendo implementar o meu botao ok nao minha classe dadosPessoas para que quando clicar em ok ele setar o meu campo cnpj_cpf, mas estou conseguindo alguem tem alguma solução?

Segue um link para que você possa ter algumas idéias iniciais.

http://emdia.wordpress.com/category/swing/listener/