[RESOLVIDO] Carregar JPanel diferente dependendo do valor do jcombobox

Gente, eu tenho uma telinha que tem um JPanel painelGeral com um JComboBox cmbTipo(valores=Aluno e Funcionário), tenho outros 2 JPanels (não visíveis) painelAluno, painelFuncionario e queria que um dos dois painéis fossem exibidos abaixo do painelGeral dependendo do valor selecionado no combobox.
Aqui vai meu código e o que eu tentei fazer até agora:

package view;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MembrosView extends JFrame implements ActionListener {
	private JButton btnAdicionar, btnCancelar;
	private JLabel lblTipo, lblNome, lblEmail, lblCelular, lblRa, lblCurso,
			lblHabilitado, lblCpf, lblEndereco, lblNumero, lblComplemento;
	private JTextField txtNome, txtEmail, txtCelular, txtRa, txtCpf,
			txtEndereco, txtNumero, txtComplemento;
	private JPanel painelPrincipal, painelBotoes, painelGeral, painelAluno,
			painelFuncionario;
	private String[] tipos = { "Aluno", "Funcionário" };
	private JComboBox cmbTipo, cmbCurso;
	private JCheckBox ccbHabilitado;

	public MembrosView() {
		super("Manutenção de Membros");
		btnAdicionar = new JButton("Adicionar");
		btnCancelar = new JButton("Cancelar");

		// geral
		lblNome = new JLabel("Nome:");
		lblEmail = new JLabel("Email:");
		lblCelular = new JLabel("Celular:");
		lblTipo = new JLabel("Tipo:");

		// aluno
		lblRa = new JLabel("RA:");
		lblCurso = new JLabel("Curso:");
		lblHabilitado = new JLabel("Habilitado:");

		// professor
		lblCpf = new JLabel("CPF:");
		lblEndereco = new JLabel("Endereço");
		lblNumero = new JLabel("Número:");
		lblComplemento = new JLabel("Complemento:");

		// geral
		txtNome = new JTextField(20);
		txtEmail = new JTextField(20);
		txtCelular = new JTextField(20);

		// aluno
		txtRa = new JTextField(20);
		cmbTipo = new JComboBox(tipos);
		ccbHabilitado = new JCheckBox();
		cmbCurso = new JComboBox();
		// habilitado é checkbox

		// professor
		txtCpf = new JTextField(20);
		txtEndereco = new JTextField(20);
		txtNumero = new JTextField(20);
		txtComplemento = new JTextField(20);

		// botoes
		btnAdicionar.addActionListener(this);
		btnCancelar.addActionListener(this);
		cmbTipo.addActionListener(this);

		painelPrincipal = new JPanel();
		painelAluno = new JPanel();
		painelFuncionario = new JPanel();
		painelBotoes = new JPanel();
		painelGeral = new JPanel();

		painelGeral.setLayout(new GridLayout(4, 2));
		painelAluno.setLayout(new GridLayout(3, 2));
		painelPrincipal.setLayout(new BorderLayout());
		painelBotoes.setLayout(new GridLayout(4, 4));

		painelGeral.add(lblTipo);
		painelGeral.add(cmbTipo);
		painelGeral.add(lblNome);
		painelGeral.add(txtNome);
		painelGeral.add(lblEmail);
		painelGeral.add(txtEmail);
		painelGeral.add(lblCelular);
		painelGeral.add(txtCelular);

		painelAluno.add(lblRa);
		painelAluno.add(txtRa);
		painelAluno.add(lblCurso);
		painelAluno.add(cmbCurso);
		painelAluno.add(lblHabilitado);
		painelAluno.add(ccbHabilitado);

		painelFuncionario.add(lblCpf);
		painelFuncionario.add(txtCpf);
		painelFuncionario.add(lblEndereco);
		painelFuncionario.add(txtEndereco);
		painelFuncionario.add(lblNumero);
		painelFuncionario.add(txtNumero);
		painelFuncionario.add(lblComplemento);
		painelFuncionario.add(txtComplemento);

		painelAluno.setVisible(false);
		painelFuncionario.setVisible(false);

		painelPrincipal.add(painelGeral, BorderLayout.NORTH);

		this.setContentPane(painelPrincipal);
		this.setSize(400, 200);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static void main(String[] args) {
		MembrosView mv = new MembrosView();

		
	}

	// se o tipo funcionario for ativado, mostra o painelFuncionario logo abaixo do painel Geral
	//o mesmo pra aluno
	//tentativas que eu fiz mas não deram certo
	@Override
	public void actionPerformed(ActionEvent e) {
		if (cmbTipo.getSelectedIndex() == 1) {
			painelPrincipal.setSize(400, 600);

			painelPrincipal.repaint();
			painelAluno.repaint();
			painelPrincipal.add(painelAluno, BorderLayout.SOUTH);
		}

		cmbTipo.addItemListener(new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				if (e.getStateChange() == ItemEvent.SELECTED) {
					//int i =  (int) e.getItemSelectable().getSelectedObjects()[0];
					int i = cmbTipo.getSelectedIndex();
					if (i==1) {
						painelPrincipal.setSize(400, 600);
						painelPrincipal.add(painelAluno, BorderLayout.SOUTH);
						painelPrincipal.repaint();
					}
				}
			}
		});

	}
}

Obrigado

Pelo jeito faltou setar a propriedade “visible” do painel q vc quer exibir:

painelAExibir.setVisible(true);

[quote=fabiocortolan]Pelo jeito faltou setar a propriedade “visible” do painel q vc quer exibir:

painelAExibir.setVisible(true); [/quote]

eu alterei nas linhas 110/111
porém não exibiu

Bom, acabei descobrindo como fazer isso (me ajudaram). Aqui fica a solução caso alguém queira:

[code]public void actionPerformed(ActionEvent e) {
if (cmbTipo.getSelectedIndex() == 0) {
painelPrincipal.setSize(700, 900);
painelPrincipal.add(painelAluno, BorderLayout.SOUTH);
painelPrincipal.revalidate();
painelPrincipal.repaint();
}

}[/code]