JScrollPane e SpringLayout
Se inserisco un pannello JScrollPane in un altro pannello che utilizza uno SpringLayout, non mi compaiono più le barre di scorrimento.
Questo non succede se il pannello utilizza un altro layout.
Questo non succede se il pannello utilizza un altro layout.
Risposte
La versione con SpringLayout non corretta
Screenshot:
Container contentPane = getContentPane(); JScrollPane scrollbar; JButton pulsante = new JButton("premi"); JButton pulsante2 = new JButton("premi 2"); SpringLayout layout = new SpringLayout(); int righe = 160; GridLayout layout2 = new GridLayout(righe,1); JPanel pane = new JPanel(); pane.setLayout(layout2); JPanel pane2 = new JPanel(); pane2.setLayout(layout); JCheckBox cb = new JCheckBox("campo 0"); for (int i=1;i<righe;i++) { cb = new JCheckBox("campo "+i); pane.add(cb); } scrollbar = new JScrollPane(pane); pane2.add(pulsante2); layout.putConstraint(SpringLayout.WEST, pulsante2, 10, SpringLayout.WEST, contentPane); pane2.add(scrollbar); layout.putConstraint(SpringLayout.WEST, scrollbar, 50, SpringLayout.EAST, pulsante2); pane2.add(pulsante); layout.putConstraint(SpringLayout.WEST, pulsante, 50, SpringLayout.EAST, pulsante2); this.add(pane2);
Screenshot:

Versione con GridLayout corretta:
Screenshot:
Container contentPane = getContentPane(); JScrollPane scrollbar; JButton pulsante = new JButton("premi"); JButton pulsante2 = new JButton("premi 2"); GridLayout layout = new GridLayout(1,3); int righe = 160; GridLayout layout2 = new GridLayout(righe,1); JPanel pane = new JPanel(); pane.setLayout(layout2); JPanel pane2 = new JPanel(); pane2.setLayout(layout); JCheckBox cb = new JCheckBox("campo 0"); for (int i=1;i<righe;i++) { cb = new JCheckBox("campo "+i); pane.add(cb); } scrollbar = new JScrollPane(pane); pane2.add(pulsante2); pane2.add(scrollbar); pane2.add(pulsante); this.add(pane2);
Screenshot:
