Problemas para posicionar JPanels diferentes no Centro do BorderLayout

Boa Tarde a todos.

Estou com um problema e já tentei de varias maneiras, mas nenhuma deu certo. Eu gostaria de ao clicar em um botão, seu evento selecionar qual dos JPanels irão aparecer no centro do BorderLayout.

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JOptionPane;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.FlowLayout;
import java.awt.Container;

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


public class Tela extends JFrame implements ActionListener{

	private BorderLayout borderLayout;
	private FlowLayout flowLayout;
	private GridLayout gridLayout;
	private Container container;
	
	private JPanel jpCima;
	private JLabel jlbPF;
	private JButton jbPF;
	private JLabel jlbPJ;
	private JButton jbPJ;
	
	private JPanel jpCentro;
	private JLabel jlbPeF;
	private JLabel jlbPeFi;
	private JLabel jlbNome;
	private JTextField jtfNome;
	private JLabel jlbRG;
	private JTextField jtfRG;
	private JLabel jlbAAA;
	private JTextField jtfAAA;
	private JLabel jlbBBB;
	private JTextField jtfBBB;
	private JLabel jlbCCC;
	private JTextField jtfCCC;
	private JLabel jlbDDD;
	private JTextField jtfDDD;
	
	private JPanel jpEsquerda;
	private JLabel jlbEEE;
	private JTextField jtfEEE;
	private JLabel jlbFFF;
	private JTextField jtfFFF;
	private JLabel jlbGGG;
	private JTextField jtfGGG;
	private JLabel jlbHHH;
	private JTextField jtfHHH;
	
	private JPanel jpBaixo;
	private JButton jbCadastrar;
	private JButton jbVoltar;
	
	public boolean aux;
	
	public Tela(){
		iniciaTela();
		jpCima();
		jpBaixo();
		jpCentro();
		jpEsquerda();
		//jpDireita();
		configComponentes();
	}
	
	public void iniciaTela(){
		setTitle("Tela");
		//pack();
		setSize(350,200);
		setLocationRelativeTo(null);
		setResizable(false);
		setVisible(true);
		validate();	
	}
	
		
	public void jpCima(){
		jpCima = new JPanel();
		jlbPF = new JLabel("Pessoa Fisica");
		jbPF = new JButton("PF");
		jbPF.addActionListener(this);
		jlbPJ = new JLabel("Pessoa Juridica");
		jbPJ = new JButton("PJ");
		jbPJ.addActionListener(this);
		flowLayout = new FlowLayout();
		jpCima.setLayout(flowLayout);
		jpCima.add(jlbPF);
		jpCima.add(jbPF);
		jpCima.add(jlbPJ);
		jpCima.add(jbPJ);
		jpCima.setVisible(true);
	}
	
	public void jpBaixo(){
		jpBaixo = new JPanel();
		jbCadastrar = new JButton("Cadastrar");
		jbCadastrar.addActionListener(this);
		jbVoltar = new JButton("Voltar");
		jbVoltar.addActionListener(this);
		flowLayout = new FlowLayout();
		jpBaixo.setLayout(flowLayout);
		jpBaixo.add(jbCadastrar);
		jpBaixo.add(jbVoltar);
		jpBaixo.setVisible(false);
	}
	
	public void jpCentro(){
		jpCentro = new JPanel();
		jlbPeF = new JLabel("PESSOA ", JLabel.RIGHT);
		jlbPeFi = new JLabel("FÍSICA", JLabel.LEFT);
		jlbNome = new JLabel("Nome", JLabel.CENTER);
		jtfNome = new JTextField(10);
		jlbRG = new JLabel("RG", JLabel.CENTER);
		jtfRG = new JTextField(10);
		jlbAAA = new JLabel("CPF", JLabel.CENTER);
		jtfAAA = new JTextField(10);
		jlbBBB = new JLabel("Endereço", JLabel.CENTER);
		jtfBBB = new JTextField(10);
		jlbCCC = new JLabel("CEP", JLabel.CENTER);
		jtfCCC = new JTextField(10);
		jlbDDD = new JLabel("Telefone", JLabel.CENTER);
		jtfDDD = new JTextField(10);
		gridLayout = new GridLayout(8,2,0,0);
		jpCentro.setLayout(gridLayout);
		jpCentro.add(jlbPeF);
		jpCentro.add(jlbPeFi);
		jpCentro.add(jlbNome);
		jpCentro.add(jtfNome);
		jpCentro.add(jlbRG);
		jpCentro.add(jtfRG);
		jpCentro.add(jlbAAA);
		jpCentro.add(jtfAAA);
		jpCentro.add(jlbBBB);
		jpCentro.add(jtfBBB);
		jpCentro.add(jlbCCC);
		jpCentro.add(jtfCCC);
		jpCentro.add(jlbDDD);
		jpCentro.add(jtfDDD);
		jpCentro.setVisible(false);
	}
	
	public void jpEsquerda(){
		jpEsquerda = new JPanel();
		jlbEEE = new JLabel("Nome");
		jtfEEE = new JTextField(15);
		jlbFFF = new JLabel("RG");
		jtfFFF = new JTextField(15);
		jlbGGG = new JLabel("CNPJ");
		jtfGGG = new JTextField(15);
		jlbHHH = new JLabel("Nome da Empresa");
		jtfHHH = new JTextField(15);
		gridLayout = new GridLayout(8,2,0,0);
		jpEsquerda.setLayout(gridLayout);
		jpEsquerda.add(jlbEEE);
		jpEsquerda.add(jtfEEE);
		jpEsquerda.add(jlbFFF);
		jpEsquerda.add(jtfFFF);
		jpEsquerda.add(jlbGGG);
		jpEsquerda.add(jtfGGG);
		jpEsquerda.add(jlbHHH);
		jpEsquerda.add(jtfHHH);
		jpEsquerda.setVisible(false);
	}
	
	/*
	public void jpDireita(){
		
	}
	*/
	
	public void msg(){
		JOptionPane.showMessageDialog(null, "Cliente Cadastrado com Sucesso!");
	}
	
	public void actionPerformed(ActionEvent e){
		if(e.getSource() == jbPF){
			aux = true;
			//container.add(jpCentro, BorderLayout.CENTER);
			jpCentro.setVisible(true);
			//jpEsquerda.setVisible(false);
			jpBaixo.setVisible(true);
			jpCima.setVisible(false);
			validate();
		}
		else if(e.getSource() == jbPJ){
			aux = false;
			jpEsquerda.setVisible(true);
			//jpCentro.setVisible(false);
			jpBaixo.setVisible(true);
			jpCima.setVisible(false);
			validate();
		}
		else if(e.getSource() == jbCadastrar){
			jpCentro.setVisible(false);
			jpEsquerda.setVisible(false);
			jpBaixo.setVisible(false);
			jpCima.setVisible(true);
			msg();
			validate();
		}
		else if(e.getSource() == jbVoltar){
			jpCentro.setVisible(false);
			jpEsquerda.setVisible(false);
			jpBaixo.setVisible(false);
			jpCima.setVisible(true);
			validate();
		}
		/*
		if(btPF.isSelected()){
		container.add(jpCentro, BorderLayout.CENTER);
		}
		else if(btPJ.isSelected()){
		container.add(jpEsquerda, BorderLayout.CENTER);//EAST
		}
		*/	
	}

	public void configComponentes(){
		container = getContentPane();
		borderLayout = new BorderLayout();
		setLayout(borderLayout);
		
		container.add(jpCima, BorderLayout.NORTH);
		container.add(jpCentro, BorderLayout.CENTER);
		container.add(jpEsquerda, BorderLayout.EAST);//EAST
		container.add(jpBaixo, BorderLayout.SOUTH);
		
		validate();
		
		/* if(aux == true){ 
			container.add(jpCentro, BorderLayout.CENTER); 
			} 
			if(aux == false){ 
			container.add(jpEsquerda, BorderLayout.CENTER);//EAST 
			} 
		*/ 
		}			
} 

import javax.swing.*;

public class Main{

	public static void main(String[]args){
		Tela tela = new Tela();
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

}

P.s: O campo para setar o JPanel que teria que aparecer no centro do BorderLayout está comentado. Acredito que o erro esteja ali, mas não pensei em nenhuma outra maneira de ajustar isso.

kara não entendi ainda qual seu problema??

Você pode adicionar no Centro, um outro painél usando CardLayout. Neste painél com CardLayout, você adiciona os painéis que quer exibir. Assim, pode usar o método show do CardLayout pra exibir um painél de cada vez.

acho que vc deveria usar o setBorderLayout dentro do container, e não do JFrame
container.setLayout(new BorderLayout());

Remova a linha 226 e 227, vc ja está usando o BorderLayout, não há porque usar de novo ele.