L'argomento è ampio e alcuni aspetti sono già stati trattati altre volte.
Innanzitutto: quello che stai facendo tu è un'applicazione Swing... JSP (Java Server Pages) è tutta un'altra cosa e non c'entra assolutamente nulla (riguarda le applicazioni WEB).
Tutto ruota attorno all'uso dei LayoutManager, che governano il layout dei componenti (posizioni e dimensioni).
Ogni componente di tipo contenitore (finestre, pannelli, dialogs, ecc) ha, solitamente, un LayoutManager predefinito. Se vuoi avere dei comportamenti personalizzati, che non riesci (per diversi motivi) ad ottenere mediante l'uso di un LayoutManager, allora dovrai togliere di mezzo quello di default (settandolo a null) e lavorare a mano (usando setBounds() e getBounds() per settare/ottenere dimensioni e posizioni sui componenti).
Per quanto riguarda lo scroll, c'è da tenere presente che non tutti i componenti sono in grado di "scrollarsi"... i JPanel ad esempio (che, a quanto ho capito, dovrai usare) non implementano l'interfaccia Scrollable. Di conseguenza, tutto l'onere della gestione dello scroll passa in mano a te.
Ti consiglio di approfondire tutti gli aspetti che ti ho citato... come vedi, gli argomenti sono diversi. Se li si conosce, si può ottenere facilmente il comportamento voluto... se non li si conosce, si farà tanta fatica per nulla.
Ciao.![]()