Ajouter un panel à un scrollpane

pseudo85 Messages postés 64 Date d'inscription mardi 7 février 2006 Statut Membre Dernière intervention 17 juillet 2009 - 3 févr. 2009 à 23:12
lindoud Messages postés 1 Date d'inscription dimanche 29 juillet 2007 Statut Membre Dernière intervention 6 mars 2009 - 6 mars 2009 à 09:44
Salut,
Je voudrais ajouter un jpanel à un scrollpane, voilà mon code:

   JScrollPane jScrollPane1 = new JScrollPane();
   JPanel jPanel2 = new JPanel(); //Le panel que j'ajoute au scrollpane
   jScrollPane1.setBounds(new Rectangle(361, 94, 339, 485));
   jPanel2.setBorder(BorderFactory.createEtchedBorder());
   jPanel2.setLayout(null);
   jScrollPane1.getViewport().add(jPanel2, null);
   jPanel1.add(jScrollPane1, null); //Le panel principal


le problème est que j'ai le scrollpane qui marche uniquement lorsque j'enlève l'instruction:
jPanel2.setLayout(null);


Mais j'ai besoin que le setLayout du panel soit à null, parce que je crée dynamiquement des composants que je lui rajoute après.


Comment faire pour que ça fonctionne lorsque je garder le setLayout à null.
Merci pour votre aide.

3 réponses

chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
4 févr. 2009 à 02:25
salut

essait ca, sait-on jamais...

JScrollPane jScrollPane1 = new JScrollPane();
JPanel jPanel2 = new JPanel();
jScrollPane1.setBounds(new Rectangle(361, 94, 339, 485));
jPanel2.setBorder(BorderFactory.createEtchedBorder());
jScrollPane1.getViewport().add(jPanel2, null);

jPanel2.setLayout(null);

jPanel2.revalidate();

// pour être sur:

System.out.println (jPanel2.getLayout())

jPanel1.add(jScrollPane1, null);
J'espère que ca résout ton problème!
chris081

<hr width="100%" />

Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici
0
pseudo85 Messages postés 64 Date d'inscription mardi 7 février 2006 Statut Membre Dernière intervention 17 juillet 2009
4 févr. 2009 à 10:06
Merci chris081 pour ta réponse, j'ai essayé mais ça ne marche pas, j'ai le meme résultat. Je ne comprend pas pourquoi ça pose un problème lorsque le layout du panel est null. C'est bizarre.
0
lindoud Messages postés 1 Date d'inscription dimanche 29 juillet 2007 Statut Membre Dernière intervention 6 mars 2009
6 mars 2009 à 09:44
Bonjour,
Essayer toujours de vérifier que :
1- le contenue  de votre panel1 (conteneur de jscrollpne) est plus petit que celui du panel2 ( le contenue de Jscrollpane)
    (si vous essayer de diminuer la taille de JLabel que j'ai mis, le jscrollpane ne s'affichera pas directement, à moins que vous essayer de diminuer la taille de toute la fenêtre)
2- utiliser le : BorderLayout()
(j'ai essayé avec le Boxlayout , mais ça n'a pas marcher !!)

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
class MainClass extends JPanel {
  public static void main(String[] args) {
    JFrame frame = new JFrame();

    JPanel jPanel1 = new JPanel(); //Le panel que j'ajoute au scrollpane
     jPanel1.setLayout(new BorderLayout());
     JScrollPane jScrollPane1 = new JScrollPane();
    
   JPanel jPanel2 = new JPanel(); //Le panel que j'ajoute au scrollpane
   jPanel2.add(new JLabel("aaaaaaaaaaaaaaaa"));
   jScrollPane1.getViewport().add(jPanel2,BorderLayout.CENTER);
   jPanel1.add(jScrollPane1, null); //Le panel principal
   
    frame.getContentPane().add(jPanel1);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(100, 100);
    frame.setVisible(true);
  }
}

*****************************

Ingénieur en Télécommunications
Mastère en cours: Dévéloppement d'une plateforme d'aide à la conception des systèmes Ultra Wide Web
Outil: Java, Matlab
0