Bonjour à tous...

Je sais bien que ça peut paraître évident pour certain, mais pour moi ça ne marche pas et je vois pas pourquoi...

j'ai (quasi) fini mon appli mais elle dois marcher aussi (pas prévu au début) sur des portables et je voudrais donc faire que les vues soient scrollables...

J'ai pour chaque vue un jpanel de fond en null layout (c'est comme ça que j'ai appris...).
Je travail sous netbeans et je fais a chaque fois un "Generate Resize Code" pour ma fenetre...

J'ai beau mettre un jscrollpane avant mon premier jpanel, bin ça scroll rien...
Partout ou j'ai regardé c'est pas avec des freelayout et c'est avec des "pack()"...

je mets un exemple de code de vue qui scroll pas pour être plus explicite...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 
public class ImpressionProgrammesVisites extends javax.swing.JFrame {
 
    public ImpressionProgrammesVisites(int idcollab) {
        initComponents();
        jPanelcontientimpression = new javax.swing.JPanel();
        jPanelcontientimpression.setBackground(new java.awt.Color(255, 255, 255));
        jPanelcontientimpression.setLayout(null);
        jPanelcontientimpression.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanelcontientimpression.setBounds(0, 0, 630, 1540 * indicemax);
        jLentetede = new JLabel[indicemax];
        ...
        jLcommentaire = new JLabel[indicemax];
        jScrollPanenotebien = new JScrollPane[indicemax];
        jScrollPanenotecollab = new JScrollPane[indicemax];
        jTextAreanotebien = new JTextArea[indicemax];
        jTextAreanotecollab = new JTextArea[indicemax];
 
        for (int i = 0; i < indicemax; i++) {
            jLentetede[i] = new JLabel();
            ...
            jLcommentaire[i] = new JLabel();
            jScrollPanenotebien[i] = new JScrollPane();
            jScrollPanenotecollab[i] = new JScrollPane();
            jTextAreanotebien[i] = new JTextArea();
            jTextAreanotecollab[i] = new JTextArea();
            jLentetede[i].setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            jLentetede[i].setText("De: " + moncmg.getPrenomCMG() + " " + moncmg.getNomCMG());
            ...
            jLcommentaire[i].setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            jLcommentaire[i].setText("Commentaires");
            jTextAreanotebien[i].setText(maselection[i].getCommentaires());
            jTextAreanotecollab[i].setText(maselection[i].getNotesPourCollaborateurs());
            int x = 5;
            int x2 = 300;
            int y = 5;
            int lg = 295;
            int h = 20;
            jLentetede[i].setBounds(x, y + 1540 * i, lg * 2, h);
            y += h + 5;
            jTextAreanotebien[i].setColumns(10);
            jTextAreanotebien[i].setRows(5);
            jTextAreanotebien[i].setLineWrap(true);
            jScrollPanenotebien[i].setViewportView(jTextAreanotebien[i]);
            jScrollPanenotebien[i].setBounds(x, y + 1540 * i, lg * 2, 170);
            y += 170 + 5;
            jLcommentaire[i].setBounds(x, y + 1540 * i, lg, h);
            y += h + 5;
            jTextAreanotecollab[i].setColumns(20);
            jTextAreanotecollab[i].setRows(5);
            jTextAreanotecollab[i].setLineWrap(true);
            jScrollPanenotecollab[i].setViewportView(jTextAreanotecollab[i]);
            jScrollPanenotecollab[i].setBounds(x, y + 1540 * i, lg * 2, 85);
            jPanelcontientimpression.add(jLentetede[i]);
            jPanelcontientimpression.add(jLcommentaire[i]);
            jPanelcontientimpression.add(jScrollPanenotebien[i]);
            jPanelcontientimpression.add(jScrollPanenotecollab[i]);
        }
        jPanelafficheecran.add(jPanelcontientimpression);
    }
 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
 
        jScrollPane3 = new javax.swing.JScrollPane();
        jPanelafficheecran = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Vérification avant impression programme de visite");
        getContentPane().setLayout(null);
 
        jPanelafficheecran.setBackground(new java.awt.Color(255, 255, 255));
        jPanelafficheecran.setLayout(null);
 
        jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
 
        jTextArea1.setColumns(20);
        jTextArea1.setEditable(false);
        jTextArea1.setFont(new java.awt.Font("Verdana", 0, 12)); // NOI18N
        jTextArea1.setLineWrap(true);
        jTextArea1.setRows(5);
        jTextArea1.setText("Vérification et modification    des notes et commentaires.");
        jScrollPane2.setViewportView(jTextArea1);
 
        jPanelafficheecran.add(jScrollPane2);
        jScrollPane2.setBounds(730, 30, 190, 60);
 
        jScrollPane3.setViewportView(jPanelafficheecran);
 
        getContentPane().add(jScrollPane3);
        jScrollPane3.setBounds(0, 0, 1000, 700);
 
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-1022)/2, (screenSize.height-808)/2, 1022, 808);
    }// </editor-fold>
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
 
            public void run() {
                new ImpressionProgrammesVisites().setVisible(true);
            }
        });
    }
 
    // Variables declaration - do not modify
    private javax.swing.JPanel jPanelafficheecran;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration
}
Faut-il que ma class extend jPanel pour que ça marche ???
En fait faut-il que je change beaucoup de chose pour que cela fonctionne ou y a t'il une solution plus simple qui m'aurait échapée???

Merci d'avance de vos conseils