Boa noite pessoal. Estou começando em GUI e não sei como fazer para que haja um espaçamento entre o primeiro botão e o topo e entre o último botão e o rodapé. Meu GUI está assim:

Eu criei a interface com BorderLayout e GridLayout:
package alignframe;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class AlignFrame extends JFrame
{
private JLabel label1;
private JLabel label2;
private JPanel buttonAlignPanel, textFieldAlignPanel, checkBoxAlignPanel;
private JButton buttons[];
private JTextField textFields[];
private JCheckBox checkBoxes[];
public AlignFrame()
{
super("Align");
int count;
buttons = new JButton[3];
buttons[0] = new JButton("Ok");
buttons[1] = new JButton("Cancel");
buttons[2] = new JButton("Help");
buttonAlignPanel = new JPanel(); // cria painel de conteúdo de botões
buttonAlignPanel.setLayout(new GridLayout(buttons.length, 1, 5, 5));
for(count = 0; count < buttons.length; count++)
buttonAlignPanel.add(buttons[count]); // adiciona botões ao painel
add(buttonAlignPanel, BorderLayout.EAST); // adiciona painel ao JFrame
} // fim do construtor AlignFrame()
} // fim da classe AlignFrame
Eu ainda irei adicionar mais componentes à GUI. Está certo usar BorderLayout e GridLayout nesta abordagem? eu pensei em usar o FloatLayout só que achei que os botões ficariam um ao lado do outro. Obrigado pela ajuda.