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

AWT/Swing Java Discussion :

Changer le texte d'un label à partir d'une autre classe


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Changer le texte d'un label à partir d'une autre classe
    Bonjour à tous ,

    Voila mon problème je voudrais changer le label de la class1 grâce a un bouton de la class2.
    Pour cela j'ai utiliser une instance de la class1 "cl1" qui lui utilise la methode setText pour modifiel le label de la class1.
    Mais le probleme c'est que rien ne change.
    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
     
    public class Class1 extends JPanel{
     
        public JButton bt;
        public JLabel lab;
        public Class1()
        {
            inti();
        }
     
        private void inti()
        {
            this.setBackground(Color.red);
            bt=new JButton();
            lab=new JLabel("Test Erreur");
            this.setLayout(new  BorderLayout());
            this.add(lab,BorderLayout.CENTER);
            this.setVisible(true);        
        }
    }
    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
     
     
    public class Class2 extends JPanel implements ActionListener
    {
        public JButton bt1;
        Class1 cl1;
        public Class2()
        {
            inti();
        }
     
        private void inti()
        {
            cl1=new Class1();
            bt1=new JButton("Changer Label");
            this.setBackground(Color.yellow);
     
            this.setLayout(new  BorderLayout());
            this.add(bt1,BorderLayout.SOUTH);
            this.setVisible(true);
            bt1.addActionListener(this);
     
        }
     
        @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==bt1)
                cl1.lab.setText("Test réussi");
     
        }
    }
    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
     
    public class Control extends JFrame{
     
        public JPanel pan;
     
        public Control()
        {
            inti();
        }
     
        private void inti()
        {
            pan=new JPanel();
     
     
            pan.add(new Class1());
            pan.add(new Class2());
            add(pan);
            this.setSize(400,400);
     
            this.setVisible(true);
     
        }
        public static void main(String[] args) {
            Control conne=new Control();
     
        }
     
    }
    Voila .J'espere que quelqu'un pourra me répondre ce serai super gentil. Et en plus le problème est tout bête,j'en suis moi même gênée.

  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
    Tout d'abord, utilise la balise code pour plus de lisibilité.
    Ensuite, le problème c'est que tu as deux instances différentes de ta classe1 : la première est celle utilisée pour l'affichage et la seconde pour la modif du label.
    Tu doit transmettre l'instance de class1 à class2 lors de la construction.
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Oh Merci 1000 fois
    Et dire que ça faisait 3 jours que j'avançais pas a cause de ce petit truc
    Un grand merci à toi. C'était bien ça. j'ai rajouté un parametre dans le constructeur de la class2 et hop!!!! Tout est devenu claire.
    C'est la premiere fois que je demande de l'aide dans un forum(d'habitude je ne fais que chercher des reponse ) , je suis très contente de la précision ainsi que la rapidité de résolution .
    Merci Encore

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je n'ai pas compris comment vous aviez résolu le problème... Pourrais-je avoir une explication un peu plus claire ?

    Merci d'avance, Ronny.

  5. #5
    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
    Un objet était utilisé pour l'affichage. Un autre objet était utilisé pour la modification. Donc la modification n'était jamais visible.
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/09/2014, 05h58
  2. Réponses: 3
    Dernier message: 24/03/2011, 15h58
  3. Remplir une zone de texte dans un gui à partir d'une autre foction
    Par Wassim123 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 04/02/2009, 16h39
  4. Ajouter du texte dans un input à partir d'une autre fenêtre
    Par Michaël dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2005, 20h14
  5. Réponses: 22
    Dernier message: 03/02/2005, 16h43

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