Non è che "deve" ..... se lo metti verticale devi usare i due "glue", se lo metti orizzontale (e chissà perché non ci avevo pensato quando ti ho risposto!Originariamente inviato da lio.b
Il BoxLayout deve essere orizzontale e non verticale.) va pure bene e anzi meglio, perché si sfrutta il fatto che un BoxLayout orizzontale "rispetta" la proprietà "alignmentY" dei componenti. E siccome l'alignmentY di un JButton è per default 0.5, sta appunto centrato.
Se con il BoxLayout orizzontale fai: tuoButton.setAlignmentY(0.25f); vedi che non sta più centrato ma più o meno a 1/4.
Il BoxLayout verticale sarebbe molto comodo se dovessi mettere più componenti magari centrati verticalmente e magari separati da un piccolo spazio, es.: un "glue", un button, uno "strut" di 10 pixel (Box.createVerticalStrut(10)), un button e un "glue". Cosa che con un BoxLayout orizzontale ovviamente non la fai e con un GridBagLayout la fai ma è più tedioso (per i constraints).