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 : 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
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