Ok allora ho fatto un po' di prove ma sono ancora in alto mare.Ho provato a mettere per quel pannello il BoxLayout , il GridLayout e addirittura il GridBagLayout ma non riesco a ottenere ciò che voglio.
Le label aggiunte continuano a non provocare la comparsa della barra, con il GridLayout gli ho pure aggiunto il parametro per lasciare lo spazio verticale tra le colonne della griglia, ottenendo solo il fatto di non fare visualizzare neanche una label se lo spazio lasciato non permette la visualizzazione di tutte le label!
Posto comunque ciò che ho cambiato ma appunto non funziona, riusciresti a dirmi dove sbaglio?
Vorrei aggiungere 3 JLabel per riga (in realtà di dimensione diversa ma per ora mi basta che siano uguali), e fare in modo che, aggiungendo la riga che uscirebbe dal pannello, compaia lo scroll e mi permetta di aggiungerne quante voglio.
Intanto questo è il codice leggermente modificato:
Grazie intantocodice:import java.awt.*; import javax.swing.*; import javax.swing.border.*; public class Scroll extends JFrame { public static void main(String[] args) { JFrame frame=new JFrame("Esempio Scroll"); frame.setSize(700,681); frame.setLocation(20,20); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container finestra=frame.getContentPane(); finestra.setBackground(Color.WHITE); JPanel nord=newPanel(new JPanel(),700,110,Color.GREEN); JPanel ovest=newPanel(new JPanel(new BorderLayout(0,0)),442,540,Color.ORANGE); JPanel centro=newPanel(new JPanel(new BorderLayout(0,0)),258,540,Color.WHITE); JPanel centroNord=newPanel(new JPanel(),258,200,Color.BLUE); JPanel centroSud=newPanel(new JPanel(),258,340,Color.RED); centroSud.setLayout(new GridLayout(20,3,0,10)); for(int i=0;i<60;i++)centroSud.add(new JLabel("Prova")); finestra.add(nord,BorderLayout.NORTH); finestra.add(ovest,BorderLayout.WEST); finestra.add(centro,BorderLayout.CENTER); centro.add(centroNord,BorderLayout.NORTH); JScrollPane lista=new JScrollPane(centroSud); lista.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); lista.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); centro.add(lista,BorderLayout.SOUTH); frame.setVisible(true); } public static JPanel newPanel(JPanel p,int h,int v,Color c) { p.setPreferredSize(new Dimension(h,v)); p.setOpaque(true); p.setBackground(c); return p; } }

Rispondi quotando
