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 :

[SWING] Evenement qui ne se déclenche pas


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut [SWING] Evenement qui ne se déclenche pas
    Bonjour a tous,
    voila je suis en train d'écrire un petit programme, mais la j'ai un petit problème avec mon interface graphique. 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    	/**
             * Le joueur à jouer, au tour de la machine
             */
    	private void gestionEvent()
    	{
    		// bouton de jeu
    		joueur.pierre.addActionListener(this);
    		joueur.feuille.addActionListener(this);
    		joueur.ciseau.addActionListener(this);
     
    		// bouton de resultat
    		machine.resultat.addActionListener(
    				new ActionListener()
    				{
    					public void actionPerformed(ActionEvent e)
    					{ machine.showCPUChoice(0); }
    				}
    			);
    	}
     
    	/**
             * Gestion de l'action des boutons de jeu
             */
    	public void actionPerformed(ActionEvent e)
    	{
    		// jeu de la machine
    		GameComputer cpu = new GameComputer();
    		machine.showCPUChoice(cpu.getCPUChoice());
     
    		cmd.commencer.setEnabled(true);
    	}
    donc en fait je crée un ActionListener sur trois boutons de la classe joueur, et un autre sur la classe machine. en fait pour les 3 boutons de la classe joueur aucun problème, par contre pour la classe machine, j'ai l'impression que le code n'est jamais executer, pourtant j'ai implémenter de la meme facon.
    je ne comprend vraiment pas pourquoi.
    En esperant que vous pourrez m'aider.
    Merci par avance

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    Il rentre dans le actionPerformed() de machine ou pas? (fait un sysout...)
    S'il y rentre bien, poste le code de ta méthode showCPUChoice().

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    non le problème c'est que c'est que on ne rentre même pas dans le actionPerformed(), la est tout le problème, en gros ma méthode showCPUChoice, c'est juste un setText("texte") sur un bouton!

  4. #4
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Points : 722
    Points
    722
    Par défaut
    C'est relativement bizarre...
    Tu peux nous montrer où tu définis machine.resultat?

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    j'instancie ma classe dans une super classe, la classe machine est une classe qui contient en gros un seul bouton. resultat et donc le JButton qui est déclaré en plublic.
    le code qui à été montré provient de la classe qui hérite de la super classe ou à été instancié machine et tous les attributs de la super classe on définit protected.

  6. #6
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    dans l'entête de ta classe, tu as bien écrit :
    "implements ActionListener"
    ????

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    oui il y a bien le implements sinon voici le code entier de la classe au cas ou ca pourrait vous aider a trouver le probleme:
    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
    62
    63
    64
    public class DialogSolo extends DialogGame implements ActionListener
    {
    	/**
             * Version
             */
    	public static final long serialVersionUID = 100L;
     
    	/**
             * Constructeur
             */
    	public DialogSolo()
    	{
    		super(1);	
    		gestionEvent();
     
    		// démarage fenêtre
    		this.start();
    	}
     
    	/**
             * Constructeur
             * @param title titre de la fenêtre
             */
    	public DialogSolo(String title)
    	{
    		super(title, 1);
    		gestionEvent();
     
    		// demarage fenetre
    		this.start();
    	}
     
    	/**
             * Le joueur à jouer, au tour de la machine
             */
    	private void gestionEvent()
    	{
    		// bouton de jeu
    		joueur.pierre.addActionListener(this);
    		joueur.feuille.addActionListener(this);
    		joueur.ciseau.addActionListener(this);
     
    		// bouton de resultat
    		machine.resultat.addActionListener(
    				new ActionListener()
    				{
    					public void actionPerformed(ActionEvent e)
    					{ javax.swing.JOptionPane.showMessageDialog(null, "Essai"); }
    				}
    			);
    	}
     
    	/**
             * Gestion de l'action des boutons de jeu
             */
    	public void actionPerformed(ActionEvent e)
    	{
    		// jeu de la machine
    		GameComputer cpu = new GameComputer();
    		machine.showCPUChoice(cpu.getCPUChoice());
     
    		cmd.commencer.setEnabled(true);
    	}
    }

  8. #8
    Membre régulier Avatar de _KB_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Points : 92
    Points
    92
    Par défaut
    hello,

    j'avais eu ce problème en implémentant ActionListener et en faisant un addActionListener(this).

    J'avais résolu le problème en passant par une classe interne qui implémente ActionListener. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void gestionEvent()
    	{
    		// bouton de jeu
    		joueur.pierre.addActionListener(new PierreActionListener());
    		joueur.feuille.addActionListener(new FeuilleActionListener());
    		joueur.ciseau.addActionListener(new CiseauActionListener());
    Moi aussi ca me paraissait bizarre que mon événement ne se déclenche pas ...
    Mais en général c'est plus propre de passer par des classes internes pour gérer les événements !

    En espérant avoir pu t'aider

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    bon les gars je viens de trouver mon erreur! et je suis vraiment un abruti, mais en fait le bouton sur lequel je met mon action n'est pas le bon, alors normal que cela ne marche pas...
    j'ai vraiment honte de moi la!
    désoler de vous avoir déranger, et merci beaucoup d'avoir reflechi a mon probleme.
    bonne continuation a vous!
    et encore merci

  10. #10
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2002
    Messages : 44
    Points : 39
    Points
    39
    Par défaut
    Pense au tag

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

Discussions similaires

  1. onSubmit qui ne se déclenche pas
    Par Sergejack dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 01/08/2006, 11h24
  2. Evènement qui ne se déclenche pas
    Par max.lille dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2006, 15h46
  3. onmouseover qui ne se déclenche pas sous IE...
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/03/2006, 17h26
  4. Un JOB qui ne se déclenche pas
    Par blids dans le forum Oracle
    Réponses: 15
    Dernier message: 09/02/2005, 21h14
  5. [trigger] ... qui ne se déclenche pas
    Par bozo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/01/2004, 11h31

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