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

Interfaces Graphiques en Java Discussion :

problème avec des boutons


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut problème avec des boutons
    Bonjour tout le monde
    j'ai un petit problème avec la gestion d'évenement sur des boutons.
    J'ai crée un bouton comme tel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //creation du bouton jouer
    Button jouer = new Button("Jouer");
    jouer.setSize(50,25);
    jouer.setLocation(190,75);
    add(jouer);   // ajout "graphique" du composant
    jouer.addActionListener(this);    
    // ajout "événementiel" du composant
    jouer.setVisible(true);

    et je fais un test pour savoir ce su'il se passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void actionPerformed(ActionEvent evt) {
        Object source = evt.getSource(); 
        System.out.println(source);
        System.out.println(jouer);
        if (source == jouer) {nb_Coups.setNbCoups(); 
        System.out.println(txt.getText());
        } else System.out.println("a"+txt.getText());
    }
    Il me renvoit ceci quand j'appuie sur le bouton jouer.
    Apparemment le bouton n'as pas été crée mais je vois pas le problème. J'espere que vous pourrez m'aider

    java.awt.Button[button0,190,75,50x25,invalid,label=Jouer]
    null
    a9

  2. #2
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Ton bouton a bien été créé mais le problème c'est que sa portée est limitée au corps de ton constructeur ou de ta méthode. Modifie de cette manière:

    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
    public class Test
    {
        private JButton jouer;
     
        public Test()
        {
             jouer = new JButton("jouer");
             //ton code...
        }
     
        public void actionPerformed(ActionEvent evt) {
            Object source = evt.getSource();
            System.out.println(source);
            System.out.println(jouer);
            if (source == jouer) {
                nb_Coups.setNbCoups();
                System.out.println(txt.getText());
            } else 
                System.out.println("a"+txt.getText());
        }
    }

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    c'est ce que j'ai fait,
    Je met mon code en entier, vous verrez plus ce que j'ai fait

    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
     public class JeuDes extends Frame implements ActionListener{
         private Button jouer;
         public JeuDes(final String nom,final int i, final int j) {
     
        // titre de la fenêtre
        ...                
        //creation du la listbox
                 ...                   
                //creation du bouton jouer
        Button jouer = new Button("Jouer");
                 jouer.setSize(50,25);
                 jouer.setLocation(190,75);
                 add(jouer);   // ajout "graphique" du composant
                 jouer.addActionListener(this);    // ajout "événementiel" du composant
                 jouer.setVisible(true);
     
                 public void actionPerformed(ActionEvent evt) {
            Object source = evt.getSource(); 
            //System.out.println(source);
            //System.out.println(jouer);
            if (evt.getActionCommand().equals("Jouer")) {
                nb_Coups.setNbCoups(txt.getText()); 
                //System.out.println(txt.getText()); 
            } 
        }
    }

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Le problème est que tu redéfini ton bouton dans ton constructeur. Il ne faut pas écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button jouer = new Button("Jouer");
    mais bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jouer = new Button("Jouer");
    comme dans le code qu'on t'a posté juste au dessus

    Edit : essayes d'utiliser les balises CODE pour ton code (l'icône #)

  5. #5
    Membre confirmé Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Par défaut
    Bonjour,
    une petite nuance, c'est ce que tu penses faire mais probablement pas
    lorsque tu écris
    Button jouer = new Button("Jouer");

    cette partie est probablement dans le constructeur de ta classe. Or en écrivant Button devant jouer, tu indiques que tu crées une variable dont la portée est limitée à l'intérieur du constructeur. Pour créer une variable dont la portée est étendue à toute la classe,l e code correct est :
    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
     
    public class maClasse extends ActionListener{
     
    private Button jouer; //déclaration en dehors du constructeur
     
    public maClasse(){ //le constructeur
    ...
    jouer = new Button("Jouer"); //instanciation dans le constructeur
    //et non pas Button jouer= new Button("Jouer"); qui masque le bouton jouer pour le constructeur
     
    jouer.addActionListener(this);
    ...
    } 
     
    public void actionPerformed(ActionEvent evt) {
    Object source = evt.getSource();
    //System.out.println(source);
    //System.out.println(jouer);
    if (evt.getActionCommand().equals("Jouer")) {
    nb_Coups.setNbCoups(txt.getText());
    //System.out.println(txt.getText());
    } 
     
    }
    Bon code,
    kerinel

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    désolé pour la présentation, je vais faire un effort
    maintenant j'ai des messages d'erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at initial.JeuDes.actionPerformed(JeuDes.java:65)
    	at java.awt.Button.processActionEvent(Unknown Source)
    	at java.awt.Button.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    ligne 65 : nb_Coups.setNbCoups(txt.getText());

    ma classe ChampsnbCoups utilise cette méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void setNbCoups(String nb) {
    		try {
    			int nb1=Integer.parseInt(this.getText());
    			this.nbCoups=nb1;
    		}catch (Exception ex) {
    			this.setText("");
    		}
    	}

  7. #7
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    C'est le même problème que pour ton bouton mais cette fois-ci pour nb_coups et/ou txt..

    Vérifie l'initialisation et la portée de ces variables.

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    Je vois pas du tout ma faute

    ma variable nb_Coups est de type ChampsNbCoups
    private ChampNbCoups nb_Coups;

    J'ai codé mon constructeur comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public ChampNbCoups() throws HeadlessException { //int nbCoups
    		super();
    		this.nbCoups = 9;	//nbCoups
    		addTextListener(this);
    	}
    et ma méthode SetNbCoups

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void setNbCoups(String nb) {
    		System.out.println(nb);
    		try {
    			int nb1=Integer.parseInt(this.getText());
    			this.nbCoups=nb1;
    		}catch (Exception ex) {
    			this.setText("");
    		}
    	}
    J'espere que vous allez accepter de m'aidez
    merci d'avance

  9. #9
    Membre émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    Et ta variable txt?

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    C'est tout ce que j'ai dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private TextField txt;
     
            //creation du la listbox
            txt = new TextField(20);
            txt.setSize(20,20);
            txt.setLocation(190,45);
            txt.addActionListener(this);
            add(txt);
    Quand je fais un System.out.println(txt.getText());
    Il m'affiche bien ce que j'ai mis donc pour moi la faute est lors de la création du nb_Coups.

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    j'ai trouvé
    j'avais pas instancié ma variable nb_Coups
    ca m'apprendra à programmer en étant fatigué

    Si vous pouvez me dire( ou me donner un lien) comment faire pour afficher dans une List et comment l'effacer parce que là j'ai cherché partout sans résultat
    Pour moi c'est la méthode addItem et clear mais elles sont dépréciées

    Sinon j'aurai voulu savoir comment changer un WindowListener et un actionListener de la bibliothèque Java.awt en javax.swing
    j'ai toujours pas trouvé
    j'ai importé
    import javax.swing.event.*;
    mais pour les images je sais pas du tout

Discussions similaires

  1. Problème avec des boutons controle ActiveX
    Par dadu35 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2015, 13h20
  2. [XL-2010] Problème avec des boutons controle ActiveX
    Par dadu35 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2015, 10h20
  3. Problème avec des Boutons personnalisés
    Par Turvy dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 18/04/2014, 12h23
  4. Problème avec des Boutons Radio
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/02/2007, 14h59
  5. problème de avec des boutons
    Par babap1 dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 04/01/2007, 10h13

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