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 :

JButton qui met à jour un JLabel, possible ?


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 6
    Points
    6
    Par défaut JButton qui met à jour un JLabel, possible ?
    Bonjour à tous, Voila je débute en JAVA et j'aimerais savoir comment faire pour qu'un JButton change le texte de mon JLabel quand on y clique dessus..

    J'ai commencé mon code mais je ne sais plus quoi faire :
    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
     
     
    package calc;
     
    import javax.swing.*;
     
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ComponentListener;
     
    public class calculette extends JFrame implements ActionListener{    
     
     
        public calculette(){         
     
            this.setTitle("Pourcentage ");
            this.setSize(300, 300);
     
            JPanel pan = new JPanel();
            FlowLayout fl = new FlowLayout();
            pan.setLayout(fl);
     
            JLabel jl = new JLabel("Rentrez le nombre:");
            JTextField jt = new JTextField("saisir                ");
            JLabel jl1 = new JLabel("€");
     
            JLabel jl2 = new JLabel("Rentrez le pourcentage:");
            JTextField jt2 = new JTextField("saisir                ");
            JLabel jl3 = new JLabel("%");
     
            JButton bt = new JButton("Résultat");
            bt.setSize(150, 150);
            bt.addActionListener(this);            
     
            JLabel jl4 = new JLabel();
     
            pan.add(jl);pan.add(jt);pan.add(jl1);pan.add(jl2);pan.add(jt2);pan.add(jl3);pan.add(bt);pan.add(jl4);    
     
            this.setVisible(true);
            this.setContentPane(pan);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
        }
     
        public  void  actionPerformed(ActionEvent e)
            {
            System.out.println("ok"); 
            setMessage();
            }
     
        public void setMessage()
        {        
            String message = "resultat";
            System.out.println(message);        
        }
     
        public static void main(String[] args) {        
                new calculette();            
        }
     
    }
    Tout s'affiche bien sur ma console mais impossible de faire changer le JLabel (jl4) avec le message résultat..

    Merci a tous

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 25
    Points : 40
    Points
    40
    Par défaut
    Bonsoir,

    Il devrait suffire de mettre

    dans ton actionPerformed, mais il faudra adapter un peu ta classe calculette : elle a bien son constructeur, ses méthodes mais aucun attribut... J'espère que tu vois où je veux en venir

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse Kymils ca fonctionne à la perfection mais il fallait que je mette la déclaration du JPanel à l'exterieur du constructeur

    Petite question en passant, tous les composants doivent etre crées à l'exterieur du constructeur ??

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 25
    Points : 40
    Points
    40
    Par défaut
    C'est ce que j'essayais de te dire : à mon avis, tes composants devraient être déclarés comme des attributs de ta classe.
    En revanche, tu peux continuer de les instancier dans ton constructeur.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Points : 227
    Points
    227
    Par défaut
    Seule les composant que tu accede depuis l'exterieure de ton constructeur doivent etre definie en instance de ta classe.

    Par exemple, si tu a un JLabel qui restera fixe, pas besoin de le mettre en dehors de ta class.

Discussions similaires

  1. [DOM] Programme qui met à jour l'inventaire
    Par jean22 dans le forum Format d'échange (XML, JSON...)
    Réponses: 27
    Dernier message: 13/11/2014, 02h18
  2. Réponses: 0
    Dernier message: 18/08/2010, 20h01
  3. Macro qui met à jour un Workbook à partir d'un autre
    Par Sanny80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/11/2009, 09h31
  4. Réponses: 2
    Dernier message: 11/08/2006, 11h11
  5. Réponses: 5
    Dernier message: 25/11/2003, 09h41

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