Я бы пошел с чем-то вроде:
JButton btn = new JButton("I'm a Button");
JLabel lbl = new JLabel("I'm a Label");
JPanel pan = new JPanel();
pan.setLayout(new BoxLayout(pan, BoxLayout.Y_AXIS));
pan.add(lbl);
pan.add(btn);
JPanel pan2 = new JPanel();
pan2.setLayout(new BoxLayout(pan2, BoxLayout.X_AXIS));
pan2.add(Box.createHorizontalGlue());
pan2.add(pan);
pan2.add(Box.createHorizontalGlue());
setLayout(new BorderLayout());
add(pan2, BorderLayout.CENTER);
Это все еще немного сложно, и вы, вероятно, захотите добавить еще одну панель для метки, чтобы она была в центре, пользовательский интерфейс в моем опыте, как правило, требует много работы для макета.