Criação de Componente - Panel redimensionável

Bom dia Galera,

Gostaria de uma dica para que eu consiga finalizar meu componente.

Uso o Netbeans 7.1 e desenvolvi um componente que contém o seguintes objetos:

JPanel - Panel principal
JPanel - Panel para armazenamento do JList
JList - Lista que irá conter a lista de objetos que irei passar.
JPanel - Panel para armazenamento dos botões
JButton - Botão Up - Botão para jogar o registro para cima.
JButton - Botão Down - Botão para jogar o registro para baixo.

O componente está funcionando perfeitamente, recebendo uma lista de dados de uma classe ( genérica ) e o usuário poderá alterar a ordem dos registros da JList.

Porém, sou meio que perfeccionista e estou tentando fazer com o que este componente não tenha uma tamanho fixo, ou seja, estou tentando que ele seja redimensionável para horizontalmente e verticalmente, mas infelizemente não estou conseguindo.

Tentei fazer via IDE a mesma estrutura do componente e “setei” a propriedade de redimensionamento e dei uma olhada no código gerado pela IDE e não consegui identificar a propriedade que realiza esta função.

Segue abaixo o código que incorpora os componentes aos JPanels para que vocês possam me auxiliar de alguma forma.

Panel que inclui o JList ao JPanel

panelLista.setBorder(BorderFactory.createTitledBorder(null, "Titulo do Painel", TitledBorder.LEFT, TitledBorder.TOP));
        this.listaItens.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        scrollListaItens.setViewportView(listaItens);
        GroupLayout panelEsquerdoGroupLayout = new GroupLayout(panelLista);
        panelLista.setLayout(panelEsquerdoGroupLayout);
        panelEsquerdoGroupLayout.setVerticalGroup(
                panelEsquerdoGroupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,panelEsquerdoGroupLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(scrollListaItens, GroupLayout.PREFERRED_SIZE, this.altura, Short.MAX_VALUE)
                .addContainerGap()));
        panelEsquerdoGroupLayout.setHorizontalGroup(
                panelEsquerdoGroupLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,panelEsquerdoGroupLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(scrollListaItens, GroupLayout.PREFERRED_SIZE, 300, Short.MAX_VALUE)
                .addContainerGap()));

Panel que inclui o JPanel e os botões ao JPanel Principal

GroupLayout panelPrincipalGroupLayout = new GroupLayout(panelPrincipal); panelPrincipal.setLayout(panelPrincipalGroupLayout); panelPrincipalGroupLayout.setHorizontalGroup( panelPrincipalGroupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,panelPrincipalGroupLayout.createSequentialGroup() .addContainerGap() .addComponent(panelLista, GroupLayout.PREFERRED_SIZE, this.largura, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(panelBotoes, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED))); panelPrincipalGroupLayout.setVerticalGroup( panelPrincipalGroupLayout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(panelPrincipalGroupLayout.createSequentialGroup() .addContainerGap() .addGroup(panelPrincipalGroupLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(panelLista, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelBotoes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));