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 :

Changer le contenu d'un JLabel par un clic


Sujet :

Java

  1. #1
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut Changer le contenu d'un JLabel par un clic
    Salut;
    J'ai un JPanel qui contient un JLabel qui lui aussi affiche un texte ,ce que je veut est du changer le contenu du JLabel en cliquons sur un JButton,mais je n'arrive pas,le contenu reste sans changement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      JTabbedPane tab= new JTabbedPane();
    JPanel pane1 = new JPanel();
    JLabel lb = new JLabel();
    lb.settext("itération 1");
    pane1.setLayout(new BorderLayout());
    pane1.add(lb,BorderLayout.CENTER);
    tab.addTab("tab1", pane1);
     
     private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
          lb.setText("iteration 2");
            lb.validate();
            lb.repaint();  
        }
    merci du l'aide à l'avance.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu enregistres bien un ActionListener sur ton bouton qui appelle ta méthode jButton2ActionPerformed au moins ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
             lb.setText("iteration 2");
        }
    });

  3. #3
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut
    je travail avec l'outil Design de NetBeans.
    l'action clic du button marche trés bien je l'ai tester par l'afichage d'un mot par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.print("sa marche");

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est donc, à priori, que tu modifies pas la même instance de JLabel que celle qui est affichée. Sinon, je ne vois pas de raison, pour la quelle ça ne fonctionnerait pas.

  5. #5
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut
    le clic boutton est dans une autre classe (Gdialog),le JLabel et la méthode qui modifier son contenu sont déclarés dans une classe (Tabs)

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par JTABLE Voir le message
    le clic boutton est dans une autre classe (Gdialog),le JLabel et la méthode qui modifier son contenu sont déclarés dans une classe (Tabs)
    Ce n'est pas tout à fait conforme au code que tu as posté, dans lequel d'un côté tu créé une instance de JLabel lb, et de l'autre tu as une méthode (d'ailleurs les deux extraits de code sont mélangés, ce qui ne facilite pas la compréhension) qui appelle une méthode setText() de cette même instance de JLabel (à priori, parce que le fait qu'elle est le même nom ne veut rien dire du tout, puisqu'on est forcément pas dans le même scope), mais aucune méthode d'une instance de classe Tabs.

    Mais, admettons, si je comprends bien, tu appelles cette méthode dans jButton2ActionPerformed et ça ne fonctionne pas. Je ne vois pas de raison, à priori, qui empêcherait que ça fonctionne. Je ne connais pas l'outil de design de NetBeans : je ne peux donc pas dire s'il y aurait une subtilité particulière; mais j'en doute.

    En tout cas, le fait d'appeler la bonne méthode, ne garantit en rien qu'il s'agit effectivement de la même instance.
    A part de dire de vérifier en debug qu'il s'agit vraiment de la même instance (ou par trace éventuellement), je ne peux t'aider plus.

  7. #7
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut
    je pense que le problème est seulement dans l'affichage parce que quand j'affiche le contenu du JLabel il est bien changé

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mais tu l'affiches ou ? Si c'est juste après avoir appelé setText() ça ne prouve rien.

    Sinon, je ne vois pas où serait le problème, désolé.

  9. #9
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut
    après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lb.settext("itération 2")
    j'affiche le contenu du JLabel comme suit juste pour vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.print(lb.gettext)
    il affiche : itération 2 .mais dans mon interface j'ai toujours : itération 1.

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je t'ai dit que ça ne prouvait rien du tout : si lb n'est pas la même instance de JLabel que celle qui est affichée dans ta fenêtre !

    Voici un exemple de principe qui fonctionne :

    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
    public static void main(String[] args) {
    		final JFrame frame = new JFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JPanel panel = new JPanel();
    		frame.getContentPane().add(panel);
     
    		panel.setLayout(new BorderLayout());
     
    		final JLabel label = new JLabel("Iteration 1");
    		panel.add(label);
     
    		final JFrame frame2 = new JFrame();
    		frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JPanel panel2 = new JPanel();
    		frame2.getContentPane().add(panel2);
     
    		JButton button = new JButton("clic");
    		button.addActionListener(new ActionListener() {
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				label.setText("Iteration 2");
    			}
     
    		});
    		panel2.add(button);
     
    		frame.setSize(200, 100);
    		frame.setLocationRelativeTo(null);
     
    		frame.addWindowListener(new WindowAdapter() {
    			@Override
    			public void windowOpened(WindowEvent e) {
     
    				frame2.setSize(200, 100);
    				frame2.setLocation(frame.getX(),
    						frame.getY() + frame.getHeight());
     
    				frame2.setVisible(true);
    			}
    		});
     
    		frame.setVisible(true);
     
    	}

  11. #11
    Membre régulier Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Points : 112
    Points
    112
    Par défaut
    vous avez raison,je travail pas sur la même instance maintenant sa marche bien.merci infiniment.

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

Discussions similaires

  1. comment peut-on changer le contenu d'un JLabel?
    Par glINSAT dans le forum Débuter
    Réponses: 6
    Dernier message: 08/03/2016, 01h26
  2. Réponses: 7
    Dernier message: 21/01/2015, 16h24
  3. Réponses: 3
    Dernier message: 30/07/2012, 10h50
  4. [AC-2000] Changer le contenu d'un etat par une requete en VBA
    Par charlou74 dans le forum IHM
    Réponses: 8
    Dernier message: 09/03/2010, 15h13
  5. [VBA] BO 6.5 SP2 Changer le contenu de l'invite par une macro
    Par jerem7w dans le forum SDK
    Réponses: 10
    Dernier message: 14/08/2009, 17h39

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