Методы setPreferredSize / MinimumSize / MaximumSize зависят от менеджера компоновки родительского компонента (в данном случае панели).
Сначала попробуйте использовать setMaximumSize вместо setPreferredSize, если я не ошибаюсь, следует работать с BoxLayout.
Кроме того: вероятно, вы должны использовать и поиграть с клеями:
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createHorizontalGlue());
panel.add(label);
panel.add(Box.createHorizontalGlue());
Если вам нужен Y_AXIS BoxLayout, вы также можете использовать вложенную панель:
verticalPanel.setLayout(new BoxLayout(verticalPanel, BoxLayout.Y_AXIS));
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createHorizontalGlue());
panel.add(label);
panel.add(Box.createHorizontalGlue());
verticalPanel.add(panel);