java999 ha scritto:
vorrei utilizzare una scroolbar, a video mi compare la finestra con la scroolbar ma non funziona lo scorrimento verticale.
Non capisco dove sbaglio
La questione è abbastanza semplice. Il JScrollPane contiene il panel3 e al panel3 hai settato un preferredSize esplicito di 450x150. E il panel3 ha anche un GridLayout.
Il punto/problema è che GridLayout suddivide in N righe QUELLA dimensione che hai impostato. Ovverò farà 150 / 1riga .. 150 / 2righe ... 150 / 10righe ecc... Insomma, la dimensione di panel3 NON cambierà, cambierà invece la dimensione delle celle, che diventeranno sempre più piccole (e inutili ...).
Se imposti il preferredSize di 450x150 al JScrollPane e NON al panel3, le cose cambiano leggermente e succede poi questo: il GridLayout continuerà a dividere le celle più o meno come prima MA quando la dimensione delle celle arriva al suo minimumSize "giusto", le celle NON diventeranno più piccole, restano al minimumSize. E man mano che il numero di celle aumenta, allora sfora dalla dimensione del viewport, quindi comparirà la scrollbar verticale e potrai scrollare.
Dato che però questa non è una buona soluzione, la soluzione
migliore è cambiare approccio. Invece di avere un GridLayout in panel3, ci metti un
BoxLayout verticale (Y_AXIS). In questo modo le label Try staranno sempre al loro preferredSize e man mano che ne inserisci il pannello diventerà e sarà maggiormente scrollabile.