Problemas com swing

Por favor gostaria que alguem me ajudasse a resolver este código :frowning:
minha intensão era utilizar um CardLayout ou um JTabbedPane para alternar entre os paineis ( montaPainelAluno, montaPainelModalidade e montaPainelHorario) gostaria, se possivel que estes paineis fosse outra classe para trabalhar conceito de orientação a objetos ou classes internas.

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

//este arquivo é o projeto final da Católica alterado na magrudaga de sábado

public class Principal implements ActionListener
{
/*
* Referencia para guardar a janela principal do exercicio.
*/
private JFrame jfJanela;
private JToolBar jtBarra;
private JPanel jpAluno, jpModalidade, jpHorario, jpCard, painelCard,pa;
private JPanel jpDadosAluno, jpBotoes;
private JLabel labelCodigoAl, labelNomeAl, labelLogrAl, labelCepAl, labelFoneResAl, labelFoneCelAl, labelSexoAl;
private JLabel labelDataNascAl, labelPesoAl, labelAlturaAl, labelModalidadeAl;
private JLabel labelCodHorario, labelNomeMod,labelIdadeMin;
private JTextField tCodigoHorario, tNomeMod, tIdadeMin;
private JTextField tCodigoAl, tNomeAl, tLogrAl, tCepAl, tFoneResAl, tFoneCelAl, tDataNascAl, tPesoAl;
private JTextField tAlturaAl,tModalidadeAl;
//private JLabel jlCod, jlNome, jlDtNasc, jlSexo, jlPeso, jlAlt;
//private JLabel jlModalidade, jlEnd, jlFone1, jlFone2, jlCep, jlCidade;
private JButton jbCadastrar, jbAtualizar, jbConsultar, jbNovo, jbExcluir;
private JButton jbAluno,jbHorario, jbModalidade,jbSair;
//private JTextField jtCod, jtNome, jtPeso, jtAlt;
//private JTextField jtEnd, jtCep, jtFone1, jtFone2;
private JRadioButton jrFeminino, jrMasculino;
private ButtonGroup grupo;
private JComboBox jcModalidade, jcCidade, jcDia, jcMes, jcAno;
private JTabbedPane jtpTabela;
//private String[] dia={" “,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”};
//private String[] mes={” “,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”};
//private String[] ano={”",“1950”,“1960”,“1970”,“1980”,“1990”,“2000”};
//private final Font fontePadrao=new Font(“TimesRoman”,Font.ITALIC,12);;
private JLabel labelCodigoMod, labelCodigoHorarioMod, labelHorarioMod, labelPrecoMod;
private JTextField tCodigoMod, tCodigoHorarioMod, tHorarioMod, tPrecoMod;
private Border rbbBorda;

 /*
 * Construtor da classe Principal
 */
Principal()
{
	jfJanela = new JFrame("Escola de Natação");
	montaJanela();
}



public void montaJanela()
{
	jfJanela.setBackground(new Color(202,202,202));
	jfJanela.setSize(510,400);
	jfJanela.setLocation(50,50);
	jfJanela.getContentPane().setLayout(null);
	
	//jpCard = new JPanel();
	//jpCard.setLayout(new CardLayout());
	//painelCard = new JPanel();
	//pa = new JPanel();
	//pa.setmontaPainelAluno();
	//painelCard.add(montaPainelAluno(),"paluno");
	//painelCard.add(montaPainelModalidade(),"pmodalidade");
	//painelCard.add(montaPainelHorario(),"phorario");
	
	
	montaBarra();
	//montaPainelHorario();
	//montaPainelModalidade();
	//montaPainelAluno();
	montaPainelBotoes();
	jfJanela.addWindowListener(new WindowAdapter()
	{
		public void windowClosing(WindowEvent e)
		{
			System.exit(0);
		}
	});
	jfJanela.setVisible(true);
}	

public void montaBarra()
{
   jtBarra = new JToolBar();
   //jtBarra.setBackground(Color.blue);
   //jtBarra.setBounds(0,0,480,50);
   jtBarra.setBackground(Color.blue);
   jtBarra.setBounds(0,0,480,40);
   jtBarra.setLayout(new GridLayout(1,4));
   jbHorario = new JButton("Horarios");
   jbHorario.addActionListener(this);
   jbAluno = new JButton("Alunos");  
   jbAluno.addActionListener(this);
   jbModalidade = new JButton("Modalidades");  
   jbModalidade.addActionListener(this);
   jbSair = new JButton("Sair");  
   jbSair.addActionListener(this);
   jtBarra.add(jbAluno);
   //jbAluno.addActionListener(this);
   jtBarra.add(jbModalidade);
   jtBarra.add(jbHorario);
   jtBarra.add(jbSair);
   jfJanela.getContentPane().add(jtBarra);
}	


public void montaPainelAluno()
{
    jpDadosAluno = new JPanel();
    jpDadosAluno.setBackground(new Color(202,202,202));
    jpDadosAluno.setBounds(10,70,480,200);
	jpDadosAluno.setLayout(new FlowLayout(FlowLayout.LEFT));
	Border rbbBorda = BorderFactory.createRaisedBevelBorder();
	jpDadosAluno.setBorder(rbbBorda);
	labelCodigoAl   = new JLabel("Código");
	labelNomeAl     = new JLabel("    Nome");
	labelLogrAl     = new JLabel("Logradouro");
	labelCepAl      = new JLabel("Cep");
	labelFoneResAl  = new JLabel("Telefone Residencial");
	labelFoneCelAl  = new JLabel("Telefone Celular");
	labelDataNascAl = new JLabel("     Data Nascimento");
	labelPesoAl     = new JLabel("Peso");
	labelAlturaAl   = new JLabel("Altura");
	labelModalidadeAl= new JLabel("   Modalidade ");
	labelSexoAl  = new JLabel("Sexo: ");
	grupo = new ButtonGroup();
	jrFeminino  = new JRadioButton("  Feminino  ");
	jrMasculino = new JRadioButton("  Masculino  ");
    tCodigoAl   = new JTextField(3);
	tNomeAl     = new JTextField(30);
	tLogrAl     = new JTextField(20);
	tCepAl      = new JTextField(12);
	tFoneResAl  = new JTextField(10);
	tFoneCelAl  = new JTextField(11);
	tDataNascAl = new JTextField(10);
	tPesoAl     = new JTextField(4);
	tAlturaAl   = new JTextField(4);
	tModalidadeAl= new JTextField(15);
	
	jpDadosAluno.add(new JLabel("                                                                                                                                                 "));
	jpDadosAluno.add(labelCodigoAl);
	jpDadosAluno.add(tCodigoAl);
	jpDadosAluno.add(labelNomeAl);
	jpDadosAluno.add(tNomeAl);
	grupo.add(jrFeminino);
    grupo.add(jrMasculino);
    jpDadosAluno.add(labelSexoAl);
    jpDadosAluno.add(jrMasculino);
    jpDadosAluno.add(jrFeminino);
    jpDadosAluno.add(labelDataNascAl);
	jpDadosAluno.add(tDataNascAl);
	jpDadosAluno.add(labelPesoAl);
	jpDadosAluno.add(tPesoAl);
	jpDadosAluno.add(labelAlturaAl);
	jpDadosAluno.add(tAlturaAl);
	jpDadosAluno.add(labelModalidadeAl);
	jpDadosAluno.add(tModalidadeAl);
	jpDadosAluno.add(labelLogrAl);
	jpDadosAluno.add(tLogrAl);
	jpDadosAluno.add(labelCepAl);
	jpDadosAluno.add(tCepAl);
	jpDadosAluno.add(labelFoneResAl);
	jpDadosAluno.add(tFoneResAl);
	jpDadosAluno.add(labelFoneCelAl);
	jpDadosAluno.add(tFoneCelAl);
	
    jfJanela.getContentPane().add(jpDadosAluno);
}	


public void montaPainelModalidade()
{
	jpModalidade = new JPanel();
    jpModalidade.setBackground(Color.blue);
    jpModalidade.setBounds(10,70,480,200);
    //jpModalidade.setBounds(10,70,480,100);
	jpModalidade.setLayout(new FlowLayout(FlowLayout.LEFT));
	labelCodigoMod        = new JLabel("Codigo da Modalidade ");
	labelNomeMod          = new JLabel("Nome da Modalidade   ");
	labelIdadeMin         = new JLabel("Idade Mínima da Modalidade ");
	tCodigoMod         = new JTextField(3);
	tNomeMod  = new JTextField(20);
	tIdadeMin = new JTextField (3);
	jpModalidade.add(labelCodigoMod);
	jpModalidade.add(tCodigoMod);
	jpModalidade.add(new JLabel("                                                                                                "));
	jpModalidade.add(labelNomeMod);
	jpModalidade.add(tNomeMod);
	jpModalidade.add(labelIdadeMin);
	jpModalidade.add(tIdadeMin);
	jfJanela.getContentPane().add(jpModalidade);
}	


public void montaPainelHorario()
{
	jpHorario = new JPanel();
    jpHorario.setBackground(Color.blue);
    jpHorario.setBounds(10,70,480,200);
    //jpHorario.setBounds(10,70,480,100);
    //jpHorario.setLayout(new GridLayout(4,2));
	jpHorario.setLayout(new FlowLayout(FlowLayout.LEFT));
	labelCodHorario = new JLabel("Código do Horario    ");
	labelCodigoMod  = new JLabel("Código Modalidade  ");
	labelHorarioMod = new JLabel("Horario Modalidade ");
	labelPrecoMod   = new JLabel("Preço Modalidade   ");
	tCodigoMod         = new JTextField(3);
	tCodigoHorario  = new JTextField(3);
	tHorarioMod        = new JTextField (6);
	tPrecoMod          = new JTextField (6);
	jpHorario.add(labelCodHorario);
	jpHorario.add(tCodigoHorario);
	jpHorario.add(new JLabel("                                                                                                "));
	jpHorario.add(labelCodigoMod);
	jpHorario.add(tCodigoMod);
	jpHorario.add(new JLabel("                                                                                                "));
	jpHorario.add(labelHorarioMod);
	jpHorario.add(tHorarioMod);
	jpHorario.add(new JLabel("                                                                  "));
	jpHorario.add(labelPrecoMod);
	jpHorario.add(tPrecoMod);
	jfJanela.getContentPane().add(jpHorario);
	
	
}

public void montaPainelBotoes()
{
	jpBotoes = new JPanel();
	jpBotoes.setBackground(Color.blue);
    jpBotoes.setBounds(10,300,480,40);
	jpBotoes.setLayout(new GridLayout(1,5));
	jbCadastrar = new JButton("Cadastrar");
	jbConsultar = new JButton("Consultar");
	jbAtualizar = new JButton("Atualizar");
	jbNovo = new JButton("Excluir");
	jbExcluir = new JButton("Novo");
	jpBotoes.add(jbCadastrar);
	jpBotoes.add(jbConsultar);
	jpBotoes.add(jbAtualizar);
	jpBotoes.add(jbNovo);
	jpBotoes.add(jbExcluir);
	jfJanela.getContentPane().add(jpBotoes);
}
 
public void actionPerformed(ActionEvent e)
{  
   if (e.getSource()==jbAluno)
     montaPainelAluno();
   
   if (e.getSource()==jbModalidade)
   {
   	 montaPainelModalidade();
   }	
    // 
   
 montaPainelAluno();
   if (e.getSource()==jbSair)
     System.exit(0);
     
     
 
}




public static void main (String arg[])
{
  Principal p = new Principal();
}

}

Olá,

 Uma solução para vc organizar esse código e poder usar alguma OO seria definir classes separadas para os 3 forms que vc precisa, colocando tudo que fosse generico em uma classe abstrata, estendendo-a para cada painel ,assim :
   JPanel
       |
       +--PainelGenerico ( Abstrata )
                    |
                    +--PainelAluno ( Concreta )
                    |
                    +--PainelModalidade ( Concreta )
                    |
                    +--PainelHorario ( Concreta )

Voçe poderia implementar metodos relativos a painés na classe abstrata, e os metodos de negocio ficariam nos filhos.
Como cada painel "é um" JPanel, basta vc instanciá-los e adicioná-los no CardLayout ou JTabbedPane, a classe principal ficaria só com o trabalho de instanciar coisas.

Claudio Gualberto
SCJP 1.4