Originariamente inviato da lio.b
Ora, nel box sud del borderlayout devo inserire una text area ed un pulsante sempre al centro ed ho scritto questo:

Il risultato è che si estende su tutto il box sud e che il bottone search diventa di un'altezza piccolissima rispetto la jtext area. Come se i glue fossero sopra e sotto quel pulsante.
Questo succede perché BoxLayout prende in considerazione anche il "maximum size" di un componente. E JTextField ha un maximum size enorme, il massimo possibile:

java.awt.Dimension[width=2147483647,height=2147483647]

Tale per cui BoxLayout fa in modo che si espanda "al massimo".

Semplicemente, dopo che hai istanziato il JTextField, puoi prendere il "preferred size" e impostarlo sul "maximum size". E se fai così, devi istanziare il JTextField con un numero di colonne es. new JTextField(10) affinché si imposti ad un certo preferredSize.

P.S. Se vuoi usare bene i layout manager, devi comprendere bene se, come e dove i layout manager rispettano e usano i vari minimumSize/preferredSize/maximumSize e eventualmente gli alignment X/Y.