IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Problème d'appel d'un JPanel avec passage d'argument


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Problème d'appel d'un JPanel avec passage d'argument
    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

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu dois créer tous les JPanel une fois pour toute et en conserver l'instance durant toute la vie de ton programme. Tu vas créer une classe par panneau "métier".
    Les deux panneaux seront gérés par un CardLayout au centre du BorderLayout.
    Pour transmettre les infos du JTextField, il suffit d'appeler une méthode de la nouvelle classe Panneau_Sim.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Probléme d'appel d'une fonction avec EF
    Par kaka83185 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 03/05/2012, 10h27
  2. Appel d'un script avec passage de paramètres
    Par Thoustra dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 12/12/2011, 14h19
  3. appel d'une fonction avec pointeur comme argument
    Par airness86180 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/03/2009, 13h34
  4. [serveur 2003] Problème d'appel de machine distante avec delprof
    Par boss_gama dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 07/02/2007, 17h14
  5. [Système] Appel d'un exe avec passage de paramètres
    Par licorne dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2006, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo