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 :

Recuperation d'une variable ?!


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Par défaut Recuperation d'une variable ?!
    Bonjour
    J'ai u petit soucis avec une classe nommee QuiSuisJe.
    Cette classe ouvre une fenetre JFrame et demande (via 2 boutons) qui est l'utilisateur ("Bidule" ou "Machin").
    Lorsque j'appuie sur l'un des boutons, la variable "Utilisateur" est correcte (dans le actionperformed) mais le main ne me sort rien du tout ?!!

    Ou est le probleme ? (peut etre est ce un probleme de declaration static/private/public ?)... Merci pour vos conseils !!!

    Voici le 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
    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
    import java.io.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.*;
     
    public class QuiSuisJe 
    { 
        private String Utilisateur=null;
        private JFrame FenUser=new JFrame("Qui es tu ?");
     
       // constructeur
       QuiSuisJe() {
           JButton But0=new JButton("BIDULE");
           JButton But1=new JButton("MACHIN");
     
        FenUser.setLayout(new BorderLayout());
        FenUser.add(But0,BorderLayout.NORTH);
        FenUser.add(But1,BorderLayout.SOUTH);
        FenUser.setBounds(400, 300, 100, 100);
     
        But0.addActionListener(new MonActionListenerQui());
        But1.addActionListener(new MonActionListenerQui());
     
        FenUser.pack();
        FenUser.setVisible(true); 
        }    
     
        private class MonActionListenerQui implements ActionListener {
                public void actionPerformed(ActionEvent e) {
                   //System.out.println(e.getActionCommand()); ICI, c'est OK
            if (e.getActionCommand().equals("BIDULE")) {
                Utilisateur="Bidule";
            } else if (e.getActionCommand().equals("MACHIN")) {
                Utilisateur="Machin";
            }
     
         }
        }       
     
         public String GetUserName(){return Utilisateur;}
     
        public static void main(String[] args){
            QuiSuisJe QUI=new QuiSuisJe();
            // Ici, il ne veut pas me sortir le nom de l'utilisateur ?!
            System.out.println(QUI.GetUserName());
       }
    }

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pour ta question, c'est parceque l'action "System.out.println(QUI.GetUserName());" est effectuée immédiatement après la création de ta fenêtre, avant que tu n'aies le temps de cliquer sur le moindre bouton. Donc à ce moment-là, "Utilisateur" n'est pas initialisée (null)

    C'est le clic sur ton bouton qui doit déclencher le "System.out.println()" si tu veut voire quelque chose dans la console

    Ensuite, pour ton code, tu as besoin de reprendre les bases de java... et entre autre les conventions de nommage!

    => les noms de classe commencent par des majuscules
    => les noms de variables et de méthodes par des minuscules
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    La cause de ton problème est très simple : l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QuiSuisJe QUI=new QuiSuisJe();
    n'est pas bloquante.
    En fait, ta fonction main() te crée ton frame et t'affiche ensuite directement la valeur de l'attribut Utilisateur qui, à ce moment-là, est encore null...
    Autrement dit, ta fonction main() n'attend pas que tu aies cliqué sur un boutton pour afficher la valeur de l'attribut Utilisateur...

    [OUPS] Désolé pour la réponse dupliquée mais j'ai mis un peu de temps à rédiger...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Par défaut
    Merci pour vos reponses,

    mais alors .. dans mon main, comment dois je faire pour que je puisse récupérer la bonne valeur de l'attribut Utilisateur afin d'ouvrir ensuite, par exemple, une autre fenetre avec le nom de l'Utilisateur ?
    Comment lui dire qu'il faut attendre un click sur bouton avant de passer a autre chose ?

    Merci encore .

  5. #5
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Je pense que la classe JOptionPane est la solution la plus simple pour faire ce que tu veux...
    Voici un lien qui pourrait t'intéresser : http://java.sun.com/docs/books/tutor...ts/dialog.html.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Par défaut
    Oui mais .. ca ne me dit pas comment je peux recuperer la valeur Utilisateur dans mon main ?

  7. #7
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Citation Envoyé par pepito31
    Oui mais .. ca ne me dit pas comment je peux recuperer la valeur Utilisateur dans mon main ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import javax.swing.JOptionPane;
     
    public class Main {
     
    	public static void main(String[] args) {
    		 Object[] possibleValues = { "BIDULE", "MACHIN" };
    		 Object user = JOptionPane.showInputDialog(null, "Qui es-tu ?", "Input", JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]);
    		 System.out.println(user);
    	}
    }

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

Discussions similaires

  1. Recuperation d'une variable dans un second sub
    Par tineighty dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2007, 16h36
  2. [Actionscript] Recuperation d'une variable php
    Par cerede2000 dans le forum Flash
    Réponses: 11
    Dernier message: 27/02/2007, 12h44
  3. [XSL] Problème recuperation d'une variable XSL
    Par vinzmeister dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/05/2006, 15h41
  4. Récupération d'une variable <form>
    Par Pique dans le forum Langage
    Réponses: 4
    Dernier message: 22/05/2006, 14h07
  5. [FLASH MX2004] Recuperation d'une variable php
    Par Shooter dans le forum Flash
    Réponses: 2
    Dernier message: 30/06/2005, 09h37

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