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 :

Quel bouton a été cliqué


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut Quel bouton a été cliqué
    bonjour
    je suis en train de créer une gallerie d'image sous swing , je charge l'image à l'aide de jfilechooser et je la met dans un bouton créé dynamiquement , je souhaite à chaque clic d'un bouton que l'image se zoome, le problème c'est que je n'ai aucune idée sur comment je peux savoir le bouton qui a été cliqué, j'ai pensé à créer des boutons indicés mais apparemment ça ne marche pas
    Si quelqu'un a une idée prière de m'aider
    je vous remercie d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    passer ton bouton en paramètre de l'ActionListener.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JButton monBouton = new JButton();
    monBouton.addActionListener(new MonListener(monBouton));
    Sinon regarde du côté de ActionEvent.getSource()

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    merci pour ta réponse rapide mais c'est quoi "monListener"?
    merci

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    C'est ta classe qui implémente ActionListener dans laquelle tu va décrire les traitements a effectuer lors qu'un clic sur un bouton.
    MonListener est un nom comme ça pour l'exemple.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    Citation Envoyé par Mathieu.J Voir le message
    C'est ta classe qui implémente ActionListener dans laquelle tu va décrire les traitements a effectuer lors qu'un clic sur un bouton.
    MonListener est un nom comme ça pour l'exemple.
    Mais les traitements on va les décrire dans ActionPerformed non?

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    actionPerformed est la méthode de ActionListener !
    Voici la doc de ActionListener

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    merci pour la doc:

    Je créé un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JButton monBouton = new JButton();
    monBouton.addActionListener(new MonListener(monBouton));
    dans ActionPerformed je tape les traitements appropriés à l'affichage de l'image concernant le bouton cliqué.

    Seulement je vois pas à quoi ça sert "MonListener" ni comment je peux l'utiliser dans mon code ni comment le déclarer.

    Merci

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    je ne vois franchement pas c'est quoi le rapport entre votre lien et mon problème

    J'ai plusieurs boutons créés dynamiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	        bt = new JButton();
    		bt.add(mb);  // mb est un label contenant une image
    		bt.addActionListener(this);


    dans ActionPerformed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    			 	jPanel1.removeAll();
    		 		jPanel1.add(bt);
    		 		jPanel1.validate();
    				jPanel1.repaint();

    le problème c'est que bt ne capte que le dernier bouton créé et non le bouton cliqué, si quelqu'un peut m'aider je lui serai reconnaissant.
    merci

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Plutôt que d'avoir ta classe qui implémente ActionListener et de donner le même listener à tous tes boutons (this), ma proposition était de créer un autre Listener auquel tu précisera le bouton auquel il appartient.

    Le lien t'explique comment créer une classe qui implémente ActionListener.

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    j'ai essayé ta proposition mais maintenant je me heurte à l'obstacle que mon jpanel1 n'est plus reconnu par la nouvelle classe créée

  12. #12
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Passe aussi le JPanel ;-)

  13. #13
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Pour faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void actionPerformed(ActionEvent e) {
            JButton boutonClique = (JButton ) e.getSource();
            // Traitement sur bouton cliqué
    }

  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    ça marche merci
    Autre question , quand j'upload une image à l'aide de jfilechooser pourquoi je ne peux voir l'image uploadé qu'une fois je bouge le jframe avec la souris ?
    merci encore une fois

  15. #15
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    il faut bouger le frame avec la souris pour que ça rafraichit !!

  16. #16
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Il faut revalider la frame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frame.invalidate();
    frame.validate();
    Ou le panel

  17. #17
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    merci bcp ça marche
    dernière question :
    J'ai un jpanel ou j'ajoute des photos à travers la commande "jfilechooser" mais mon probleme c'est que une fois le panneau est plein les photos s'adaptent à la taille de ce panneau alors que moi je souhaite qu'ils gardent leurs taille d'origine et de pouvoir les défiler à travers jscrollpane

    j'espère que je n'ai pas abusé de ta gentillesse

  18. #18
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Et la déclaration interne d'écouteur ?
    http://docs.oracle.com/javase/tutori...eralrules.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //An example of using an anonymous inner class.
    public class MyClass extends Applet {
        ...
            someObject.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    ...//Event listener implementation goes here...
                }
            });
        ...
        }
    }
    Avec l'utilisation de classe interne pour les écouteurs, il est possibles d’accéder au contenue de la classe contenante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //An example of using an anonymous inner class.
    public class MyClass extends Applet {
        ...
            someObject.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    ...//Event listener implementation goes here...
                    MyClass myClassObject = MyClass.this;// On prend l'objet courant MyClass
                    MyClass.this.myMethode();
                    MyClass.this.myProperty;
                }
            });
        ...
        }
    }
    Biensûr, c'est à utiliser avec modération et rigueur.

    Dans mes programmes, cela se résume souvent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MyClass.this.getProcessor().run(Processor.DO_SAVE);
    //OU
    MyClass.this.getProcessor().run(Processor.UNDO);
    Cela permet de délier totalement l'interface du traitement.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. savoir sur quel bouton l'utilisateur clique
    Par Mihalis dans le forum Delphi
    Réponses: 4
    Dernier message: 13/06/2007, 22h07
  2. Réponses: 3
    Dernier message: 15/11/2006, 14h57
  3. [WinForms]comment savoir sur quel bouton j'ai cliqué?
    Par bossun dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/03/2006, 15h18
  4. [ActionEvent][JMenuItem]Connaitre quel bouton a été cliqué
    Par leminipouce dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 16/02/2006, 11h37
  5. Formulaire -> pour savoir sur quel bouton on a cliqué.
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/09/2005, 19h53

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