JTable não fica visível

Boa tarde,
Não estou conseguindo fazer uma jtable (inicialmente vazia) aparecer no formulário.
Alguém pode me dar uma ajuda?

Essa é a classe da jtable (um jpanel que a contem):

package sca.ui;

import java.awt.Dimension;
import java.util.Set;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListModel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.event.ListSelectionListener;
import sca.domain.Aluno;
import com.jgoodies.binding.adapter.AbstractTableAdapter;
import com.jgoodies.binding.adapter.SingleListSelectionAdapter;
import com.jgoodies.binding.list.ArrayListModel;
import com.jgoodies.binding.list.SelectionInList;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;

@SuppressWarnings("serial")
public class PainelAlunos extends JPanel{

	private ArrayListModel arrayListModel = new ArrayListModel();
	private JTable tblAlunos;
	private String[] cabecalho = {"Matrícula", "Nome"};
	
	public PainelAlunos(){

		FormLayout layout = new FormLayout("pref","pref");

		SelectionInList selecao = new SelectionInList((ListModel) 
				this.arrayListModel);
		
		AlunoTableAdapter adapter = new AlunoTableAdapter(selecao, cabecalho);
		
		tblAlunos = new JTable(adapter);
		tblAlunos.setSelectionModel(new SingleListSelectionAdapter(
				selecao.getSelectionIndexHolder()));
		//tblAlunos.setFillsViewportHeight(true);
		tblAlunos.setVisible(true);
		
		JScrollPane scrollPane = new JScrollPane(tblAlunos);

		scrollPane.setPreferredSize(tblAlunos.getPreferredSize());

		CellConstraints celula = new CellConstraints();
		
		PanelBuilder builder = new PanelBuilder(layout, this);

		builder.setDefaultDialogBorder();

		builder.add(scrollPane, celula.xy(1, 1));
		scrollPane.setVisible(true);
		setVisible(true);
	}

	public static void main(String[] a) {
		try {
			UIManager.setLookAndFeel(new PlasticXPLookAndFeel());
			JFrame f = new JFrame("Alunos");
			f.setDefaultCloseOperation(2);
			f.add(new PainelAlunos());
			f.pack();
			f.setVisible(true);
		} catch (UnsupportedLookAndFeelException e) {
			System.out.println(e.getMessage());
		}
	}

	private class AlunoTableAdapter extends AbstractTableAdapter {

		public AlunoTableAdapter(ListModel listModel, String[] columnNames) {
			super(listModel, columnNames);
		}

		public Object getValueAt(int rowIndex, int columnIndex) {
			Aluno model = (Aluno) getRow(rowIndex);
			if (columnIndex == 0) {
				return model.getNome();
			} else if (columnIndex == 1) {
				return model.getMatricula();
			} else {
				throw new RuntimeException("Índice inválido para tabela.");
			}
		}
	}

	public void apresentarAlunos(Set<Aluno> alunos) {
		this.arrayListModel.clear();
		System.err.println("Alunos:");
		for (Aluno a : alunos) {
			System.err.println(a.toString());
			this.arrayListModel.add(a);
		}
	}
	
	public void inscrever(ListSelectionListener listener) {
		tblAlunos.getSelectionModel().addListSelectionListener(listener);
	}
}

Essa agora, é a classe do formulário, que chama o painel acima:

package sca.ui;

import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.event.ListSelectionListener;

import sca.app.AvaliacaoAlunoPresenter;
import sca.app.SelecaoAlunoView;

import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.debug.FormDebugPanel;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

public class SelecaoAlunoForm extends JFrame implements SelecaoAlunoView{

	private JButton btnSelecionarAluno;

	private ImageIcon imgEdit = new ImageIcon(
			sca.ui.CadastroDisciplinaForm.class
					.getResource("EditComp32x32.gif"));
	private JLabel lblImage = new JLabel(imgEdit);
	private PainelAlunos painelAlunos;
	
	public SelecaoAlunoForm(){
		criarComponentes();
		setLocation(100, 100);
		setSize(500,400);
	}
	
	private void criarComponentes(){

		btnSelecionarAluno = new JButton("Selecionar Aluno");

		FormLayout layout = new FormLayout("pref,6dlu, pref",
				"pref, 6dlu, pref,6dlu, pref,pref:grow,6dlu,pref");
		
		JPanel painel = new JPanel();
		CellConstraints celula = new CellConstraints();
		this.add(painel);
		PanelBuilder builder = new PanelBuilder(layout, painel);
		builder.setDefaultDialogBorder();

		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
		setTitle("Cadastro de Disciplina");

		JLabel lblHeader = new JLabel();
		JLabel lblHelpText = new JLabel();
		painelAlunos = new PainelAlunos();
		
		
		lblHeader.setText("SCA :: Seleção de Aluno");
		lblHeader.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblHelpText
				.setText("Use este formulário para selecionar um aluno.");

		// Linha 1 - cabeçalho
		builder.add(lblImage, celula.xy(1, 1));
		builder.add(lblHeader, celula.xy(3, 1));
		builder.add(lblHelpText, celula.xy(3, 3, "left,top"));
		
		builder.add(painelAlunos, celula.xy(3, 4));
		builder.add(btnSelecionarAluno, celula.xy(3,6));
		
		this.pack();
	}
	
	@Override
	public void adicionarListener(AvaliacaoAlunoPresenter listener){
		btnSelecionarAluno.addActionListener(listener);
		painelAlunos.inscrever(listener);
	}

	
}

Agradeço pela atenção.

Você tem que adicionar a tabela no JScrollPane e depois adicionar o scroll na sua classe.
Exemplo.:

JTable tabela = new JTable(//seu modelo);

JScrollPane scroll = new JScrollPane();
scroll.setViewportView(tabela);

this.add(scroll); //Aqui você adiciona o scroll na sua classe que é um JPanel

Penso que seja isso, um abraço!

Thiago, agradeço pela atenção, mas o scroll já está sendo adicionado ao builder, que, por sua vez, está sendo adicionado ao painel:

PanelBuilder builder = new PanelBuilder(layout, this);
builder.setDefaultDialogBorder();

builder.add(scrollPane, celula.xy(1, 1));

Mas onde você adiciona a tabela no scroll?

No instanciamento do scroll, na linha 45 da classe PainelAlunos.

Tenta com o setViewportView(tabela)!