probleme de visibilite d'un JPanel
voila un ptit dessin pour mieux comprendre ce que je veux faire :
http://christophe256.free.fr/image/Presentation.PNG
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 :D )
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 :oops: .
classe fenetre :
Code:
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:
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");
}
} |