Originariamente inviato da oronze
il problema è che body resta sempre su un'unica linea senza mai andare a capo...
Lo so ... ma dovresti comprendere meglio come funzionano i layout manager. E ti consiglio di leggere (se non l'hai già fatto) questo: Effective Layout Management: Short Course

Ricapitoliamo: hai questa struttura (solo le parti di interesse):
codice:
JScrollPane
  \
   JPanel (con BorderLayout)
     \
      JPanel in CENTER (con FlowLayout)
        \
         JLabel
Ora: JScrollPane deve conoscere la dimensione del contenuto, ovviamente. Come lo fa? Visto che JPanel non implementa Scrollable, si basa sul preferred size del JPanel contenuto. La altezza per ora non interessa, solo il "width".

E quale è il preferred width di un BorderLayout? È il massimo tra le larghezze di NORTH, WEST+CENTER+EAST e SOUTH.
E quale è il preferred width della parte CENTER che contiene un FlowLayout? Per FlowLayout il preferred width è la somma dei preferred width di tutti i componenti + eventuali hgap ... quindi in pratica 1 sola riga!!! Non fluisce!!

Soluzioni? Beh, non è per nulla banale!!! Puoi impostare un certo preferred size per il panel che ha il FlowLayout. Questo però vuol solo dire che "fluisce" sul preferred width impostato .... non che fluisce secondo la larghezza della "vista" del scroll pane!!!

Ripeto che non è banale!! Dovrei studiarci e documentarmi un pochino.