JScrollPane e SpringLayout

hee136
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.

Risposte
hee136
La versione con SpringLayout non corretta

  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:

hee136
Versione con GridLayout corretta:

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:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.