voila un ptit dessin pour mieux comprendre ce que je veux faire :



j'ai donc 3 JPanels , le panel3 me servant de multi-panel , via une

selection dans le JComboBOx (en esperant que la partie du code y correspondant soit bonne )

j'ai une classe definissant le "panel 1" ainsi que ses differents composants
et la classe principale ou je cree ma fenetre et je lui ajoute le "panel 1"
mais a l'affichage je n'ai qu'une fenetre vide et je vois pas se que j'ai oublié suis sur que c'est tout bete mais bon .

classe fenetre :
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
 
public class Fenetre extends JFrame 
{
 Fenetre()
    {        
        super("hello");
        Container leConteneur = this.getContentPane();
        CadrePrincipale cadre = new CadrePrincipale();
        leConteneur.add(cadre);
    }
    public static void main (String [] args)
    {
     Fenetre fe= new Fenetre();         
     fe.pack();
     fe.setVisible(true);
    }
}
et celui du JPanel1 :
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
 
public class CadrePrincipale extends JPanel implements ItemListener
{
  public CadrePrincipale()
  {
 
    /** cadre principal */
    cadre = new JPanel();
    cadre.setSize(200,400);
    cadre.setVisible(true);
    cadre.setLayout(new BorderLayout());        
 
 
    /** definition du panneau d'entete */
    entete = new JPanel();
    cadre.add(entete);      // ajout du l'entete dans le cadre        
    entete.setBounds(0, 0, 200, 100);
    entete.setLayout(new BorderLayout());        
    listeProduit = new JComboBox();
    listeProduit.addItem("panneau1");
    listeProduit.addItem("panneau2");
    listeProduit.addItemListener(this);
    entete.add((new JLabel("Choice your product")),BorderLayout.NORTH);
    entete.add(listeProduit,BorderLayout.CENTER);
 
    /** definition du panneau de corps */
    corps = new JPanel();
    cadre.add(corps); // ajout du l'entete dans le cadre        
    corps.setBounds(0, 100, 200, 300);
    gestionnaireDePanneau = new CardLayout(); 
    corps.setLayout(gestionnaireDePanneau);
    un = new PremierPanel();
    deux = new DeuxiemePanel();
    corps.add(un,"premier panneau");
    corps.add(deux,"deuxieme panneau");    
 
   }
   public void itemStateChanged(ItemEvent evt)
   {
      if ( ( (String)listeProduit.getSelectedItem() ).equals("panneau1")  )
         gestionnaireDePanneau.show(corps,"premier panneau");
      else 
         gestionnaireDePanneau.show(corps,"deuxieme panneau");
    }
}