Incluindo uma Classe JPanel dentro do JTabbedPane

Boa tarde galera,
Estou desenvolvendo o meu trabalho final de curso e fiquei encarregado de trabalhar a interface.
Gostaria da ajuda de vocês…

Criei um Frame que tem o JTabbedPane com suas abas… Até ai normal, porém, criei uma outra classe com o JPanel. Pois bem, quando eu clicar na aba, em vez deu criar tudo lá dentro eu gostaria de chamar a construtora de outra classe…

Como faço isso??? Tentei algumas gambiarras (POG… rsrsrs), mas nada funciona!!!

Segue o código:

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.sql.
;
public class Inicio extends JFrame implements ActionListener{

JPanel cliente = new CadCliente();

Inicio(){
	setSize(800,600);
	
	JTabbedPane painel = new JTabbedPane();  
	painel.add(new JPanel(), "");  
	painel.add(new JPanel(), "");  
	
        
      add(painel);  
}


public void actionPerformed(ActionEvent e) {
	
}

}[/code]

A classe que quero chamar…

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


public class CadCliente extends JPanel implements ActionListener{
	
	JLabel lblLogin, lblSenha, lblBloqueio, lblNome, lblDocumento; 
	JLabel lblEndereco, lblBairro, lblCep, lblCidade, lblEstado, lblTel;
	JTextField txtLogin, txtSenha, txtNome, txtDocumento;
	JTextField txtEndereco, txtBairro, txtCep, txtCidade, txtEstado, txtTel;
	JComboBox cbBloqueio;
	JButton btCadastrar, btEditar, btDeletar, btVisualizar;
	
	CadCliente(){
		setBounds(0,0,800,600);
		getRootPane().setLayout(null);
		
		lblLogin = new JLabel("");
		lblLogin.setBounds(5,5,200,20);
		txtLogin = new JTextField();
		txtLogin.setBounds(5,30,200,20);
		getRootPane().add(lblLogin);
		getRootPane().add(txtLogin);
		
		lblSenha = new JLabel("");
		lblSenha.setBounds(215,5,200,20);
		txtSenha = new JTextField();
		txtSenha.setBounds(215,30,200,20);
		getRootPane().add(lblSenha);
		getRootPane().add(txtSenha);
		
		lblBloqueio = new JLabel("");
		lblBloqueio.setBounds(425,5,200,20);
		cbBloqueio = new JComboBox();
		cbBloqueio.setBounds(425,30,200,20);
		getRootPane().add(lblBloqueio);
		getRootPane().add(cbBloqueio);
		
		lblNome = new JLabel("");
		lblNome.setBounds(5,55,400,20);
		txtNome = new JTextField();
		txtNome.setBounds(5,30,200,20);
		getRootPane().add(lblNome);
		getRootPane().add(txtNome);
		
		lblDocumento = new JLabel("");
		lblDocumento.setBounds(215,55,200,20);
		txtDocumento = new JTextField();
		txtDocumento.setBounds(215,80,200,20);
		getRootPane().add(lblDocumento);
		getRootPane().add(txtDocumento);
		
		lblEndereco = new JLabel("");
		lblEndereco.setBounds(425,55,200,20);
		txtEndereco = new JTextField();
		txtEndereco.setBounds(425,80,200,20);
		getRootPane().add(lblEndereco);
		getRootPane().add(txtEndereco);
		
		lblBairro = new JLabel("");
		lblBairro.setBounds(5,5,200,20);
		txtBairro = new JTextField();
		txtBairro.setBounds(5,30,200,20);
		getRootPane().add(lblBairro);
		getRootPane().add(txtBairro);
		
		lblCep = new JLabel("");
		lblCep.setBounds(5,5,200,20);
		txtCep = new JTextField();
		txtCep.setBounds(5,30,200,20);
		getRootPane().add(lblCep);
		getRootPane().add(txtCep);
		
		lblCidade = new JLabel("");
		lblCidade.setBounds(5,5,200,20);
		txtCidade = new JTextField();
		txtCidade.setBounds(5,30,200,20);
		getRootPane().add(lblCidade);
		getRootPane().add(txtCidade);
		
		lblEstado = new JLabel("");
		lblEstado.setBounds(5,5,200,20);
		txtEstado = new JTextField();
		txtEstado.setBounds(5,30,200,20);
		getRootPane().add(lblEstado);
		getRootPane().add(txtEstado);
		
		lblTel = new JLabel("");
		lblTel.setBounds(5,5,200,20);
		txtTel = new JTextField();
		txtTel.setBounds(5,30,200,20);
		getRootPane().add(lblTel);
		getRootPane().add(txtTel);
	}

	
	public void actionPerformed(ActionEvent e) {
		
	}
}

A quem interessar, consegui resolver o problema juntamente com o meu Professor.

Segue como deve ser chamado na classe principal.

JTabbedPane painel = new JTabbedPane(); 
painel.setBounds(130,0,650,400);
painel.add(new CadCliente(), "Clientes");  

//Onde """new CadCliente()""" é a construtora da classe pública que deve aparecer dentro do JPanel.

Já a classe eu vou colocar ela inteira…

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.sql.
;

public class CadCliente extends JPanel implements ActionListener{

JLabel lblLogin, lblSenha, lblBloqueio, lblNome, lblDocumento; 
JLabel lblEndereco, lblBairro, lblCep, lblCidade, lblEstado, lblTel;
JTextField txtLogin, txtSenha, txtNome, txtDocumento;
JTextField txtEndereco, txtBairro, txtCep, txtCidade, txtEstado, txtTel;
JComboBox cbBloqueio;
JButton btCadastrar, btEditar, btDeletar, btVisualizar, btFechar;

PesquisarCliente pesquisa = new PesquisarCliente();

CadCliente(){
	setBounds(50,50,650,400);
	setLayout(null);
	
	lblLogin = new JLabel("Login");
	lblLogin.setBounds(5,5,200,20);
	lblLogin.setToolTipText("Login do cliente");
	txtLogin = new JTextField();
	txtLogin.setBounds(5,30,200,20);
	add(lblLogin);
	add(txtLogin);
	
	lblSenha = new JLabel("Senha");
	lblSenha.setBounds(215,5,200,20);
	lblSenha.setToolTipText("Senha do cliente, a mesma será gerada automaticamente.");
	txtSenha = new JTextField();
	txtSenha.setBounds(215,30,200,20);
	txtSenha.setEnabled(false);
	add(lblSenha);
	add(txtSenha);
	
	lblBloqueio = new JLabel("Bloqueio de Acesso");
	lblBloqueio.setBounds(425,5,200,20);
	lblBloqueio.setToolTipText("Determina se o Usuário está ativo ou não.");
	String[] bloqueio = {"000 - Ativado" , "001 - Bloqueado"};
	cbBloqueio = new JComboBox(bloqueio);
	cbBloqueio.setBounds(425,30,200,20);
	add(lblBloqueio);
	add(cbBloqueio);
	
	lblNome = new JLabel("Nome Completo");
	lblNome.setBounds(5,55,400,20);
	lblNome.setToolTipText("Nome completo do cliente");
	txtNome = new JTextField();
	txtNome.setBounds(5,80,400,20);
	add(lblNome);
	add(txtNome);
	
	lblDocumento = new JLabel("Documento");
	lblDocumento.setBounds(425,55,200,20);
	lblDocumento.setToolTipText("Documento do cliente");
	txtDocumento = new JTextField();
	txtDocumento.setBounds(425,80,200,20);
	add(lblDocumento);
	add(txtDocumento);
	
	lblEndereco = new JLabel("Endereço Completo");
	lblEndereco.setBounds(5,105,400,20);
	lblEndereco.setToolTipText("Endereço completo do cliente");
	txtEndereco = new JTextField();
	txtEndereco.setBounds(5,130,400,20);
	add(lblEndereco);
	add(txtEndereco);
	
	lblBairro = new JLabel("Bairro");
	lblBairro.setBounds(425,105,200,20);
	lblBairro.setToolTipText("Bairro do cliente.");
	txtBairro = new JTextField();
	txtBairro.setBounds(425,130,200,20);
	add(lblBairro);
	add(txtBairro);
	
	lblCep = new JLabel("CEP");
	lblCep.setBounds(5,155,200,20);
	lblCep.setToolTipText("CEP do cliente.");
	txtCep = new JTextField();
	txtCep.setBounds(5,180,200,20);
	add(lblCep);
	add(txtCep);
	
	lblCidade = new JLabel("Cidade");
	lblCidade.setBounds(215,155,200,20);
	lblCidade.setToolTipText("Cidade do cliente.");
	txtCidade = new JTextField();
	txtCidade.setBounds(215,180,200,20);
	add(lblCidade);
	add(txtCidade);
	
	lblEstado = new JLabel("Estado");
	lblEstado.setBounds(425,155,200,20);
	lblEstado.setToolTipText("Estado do cliente.");
	txtEstado = new JTextField();
	txtEstado.setBounds(425,180,200,20);
	add(lblEstado);
	add(txtEstado);
	
	lblTel = new JLabel("Telefone");
	lblTel.setBounds(5,205,200,20);
	lblTel.setToolTipText("Telefone de contato com o cliente.");
	txtTel = new JTextField();
	txtTel.setBounds(5,230,200,20);
	add(lblTel);
	add(txtTel);
	
	btCadastrar = new JButton("Cadastrar"); btCadastrar.addActionListener(this);
	btCadastrar.setBounds(215,270,200,20);
	add(btCadastrar);
	
	btEditar = new JButton("Editar"); btEditar.addActionListener(this);
	btEditar.setBounds(215,300,200,20);
	add(btEditar);
	
	btDeletar = new JButton("Deletar"); btDeletar.addActionListener(this);
	btDeletar.setBounds(425,270,200,20);
	add(btDeletar);
	
	btVisualizar = new JButton("Visualizar"); btVisualizar.addActionListener(this);
	btVisualizar.setBounds(425,300,200,20);
	add(btVisualizar);
	
}


public void actionPerformed(ActionEvent e) {
	if(e.getSource()==btVisualizar){
		pesquisa.setVisible(true);
	}
}

}
[/code]

Um abraço galera