Interchangement de Jpanel
Bonjour,
J ' ai un problème pour changer de 2 jPanel dans une JFrame, je m ' explique:
A l ' ouverture de mon application : le panel principal est affiché (JPanelContainer). Ensuite , je peut changer de Jpanel(JPanelEdition) via un JMenuItem(Edition Xml) et revenir sur mon ancien panel avec un autre JMenuItem(Lecture Xml).
Ca fonctionne bien si je passe du JpanelContainer au JpanelEdition , mais lorsque je tente de revenir sur le JPanelContainer( avec l ' instance courante que je passe dans le constructeur de ma classe) ca ne fonctionne pas( ca vide la JFrame).
Bien sur , ca fonctionne si je crée un nouveau JPanelContainer , mais je voudrais récupérer l ' instance courante qui dispose de traitements en cours.
Voici mon code:
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 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
| public class MenuMode implements ActionListener{
private JMenuItem menuLecture,menuEdition;
private JFrameContainer fenetre;
private JPanelContainer containerLecture;
private JPanelEdition containerEdition;
public MenuMode(JFrameContainer fenetre , JPanelContainer containerLecture)
{
super();
this.fenetre=fenetre;
this.containerLecture=containerLecture;// instance courante
}
public JMenu initialiserMenuMode()
{
JMenu menu;
menu = new JMenu("Mode");
menuLecture = new JCheckBoxMenuItem("Lecture Xml");
menuLecture.setSelected(true);
menuEdition = new JCheckBoxMenuItem("Edition Xml");
menuLecture.addActionListener(this);
menuEdition.addActionListener(this);
menu.add(menuLecture);
menu.add(menuEdition);
return menu;
}
public void actionPerformed(ActionEvent e) {
JCheckBoxMenuItem source = (JCheckBoxMenuItem)(e.getSource());
if(source.getText().equals("Lecture Xml"))
{
if(source.isSelected())
{
menuLecture.setEnabled(false);
menuEdition.setSelected(false);
menuEdition.setEnabled(true);
fenetre.getContentPane().removeAll();
fenetre.getContentPane().repaint();
fenetre.setContentPane(containerLecture);// le problème se situe ici : il ne m ' ajoute pas l ' instance courant de containerLecture
containerLecture.revalidate();
containerLecture.updateUI();
containerLecture.repaint();
}
}
if(source.getText().equals("Edition Xml"))
{
if(source.isSelected())
{
MenuParametres.menu.setEnabled(false);
menuEdition.setEnabled(false);
menuLecture.setEnabled(true);
menuLecture.setSelected(false);
containerEdition=new JPanelEdition();
fenetre.getContentPane().removeAll();
fenetre.getContentPane().repaint();
fenetre.setContentPane(containerEdition);
containerEdition.revalidate();
}
}
}
} |
Merci votre aide