Bonjour à tous,

J'ai un problème récurrent que je n'arrive pas à régler, et c'est très ennuyeux.

Alors en fait il s'agit d'une applet initialement composé de 5 JPanel positionnés avec un BorderLayout.

Sur le panneau ouest se trouvent un JTextField et deux JButton (SIMULATION, et ACCUEIL).

Mon problème est le suivant:

Je souhaiterais lors d'un clic sur le bouton Simulation enlever le panneau initialement au centre et le remplacer pour un nouveau panneau que l'on appellera panneau_Sim.Et chose importante ce panneau aura comme argument la valeur du JTextField!!

Je souhaiterais lors d'un clic enlever le panneau_Sim alors lancer et revenir au panneau initial.

Et surtout une fois le Panneau_Sim mise en place, dès que l'utilisateur change la valeur du JTextField et clic sur SIMULATION, que en quelque sort ça rafraichisse le panneau simulation.


J'ai réussi à faire interchanger les panneaux sans le passage de valeur du JTextField comme ceci:
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
 
public class appletLaser extends JApplet {
                //appel des classes panneaux
                panneaunord pn= new panneaunord();
                panneausud ps= new panneausud();
                panneauouest po= new panneauouest();
                panneauest pe= new panneauest();
                panneaucentre pc= new panneaucentre();
                panneauCentralResultat ax = new panneauCentralResultat();
 
 
 
 
 
 
	public void init(){
 
                setSize(800, 600); //taille de l'applet
 
                setLayout(new BorderLayout());//utilisation du gestionnaire border
 
 
		//On ajoute nos panneaux
                add(ps, BorderLayout.SOUTH);
                add(pe, BorderLayout.EAST);
                add(po, BorderLayout.WEST);
                add(pn, BorderLayout.NORTH);
                add(pc, BorderLayout.CENTER);
 
                 po.jb2.addActionListener(new ActionListener() //on ajoute un action listener sur le Bouton du panneau OUEST
		{public void actionPerformed(ActionEvent evt)
		    {
 
                    remove(pc);
                    add(ax, BorderLayout.CENTER);
                    validate();
                    }
		});
 
                po.jb3.addActionListener(new ActionListener()
                {public void actionPerformed(ActionEvent evt)
                    {
 
                    remove(ax);
                    add(pc, BorderLayout.CENTER);
                    validate();
                 }
                });
                 }

En fait j'utilise remove() pour enlever le panneau présent et le remplacer.
Seulement si je fait le rafraichissement je suis bien obligé d'appeler la classe panneau_Sim dans le actionListener.
Or le remove le détruit directe.

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
 
 
 po.jb2.addActionListener(new ActionListener() //on ajoute un action listener sur le Bouton du panneau OUEST
		{public void actionPerformed(ActionEvent evt)
		    {
                    panneauCentralResultat ax = new panneauCentralResultat(po.jtf.getValue());//ici on appel la classe panneau_Sim
 
                    remove(pc);
                    remove(ax);//ici j'essaie d'enlever l'existente mais ça me supprime la nouvelle et non pas l'ancienne.
 
                    add(ax, BorderLayout.CENTER);
                    validate();
                    }
		});
 
                );
                 }


Merci d'avance