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 :

Récupérer valeur d'un MouseClick puis ..


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut Récupérer valeur d'un MouseClick puis ..
    Bonjour !!!


    Voilà j'ai un problème , j'ai 2 classes, la 1ère qui est la suivante en gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Fenetre extends JFrame implements ActionListener{
    LinkedList<String> comboL = new LinkedList<String>();
    private JComboBox combo = new JComboBox();
    }
    Voilà donc mon combo contient les donnée de la LinkedList, jusque là tout va bien.

    Voici ma 2ème classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class DessinStation extends JButton implements MouseInputListener{
    ...
    public void mouseClicked(MouseEvent e){
    	this.getName();
    }
     
    ...
    Donc dans mon MouseCliked , je récupère le nom de la station, seulement je ne vois pas trop comment dire a ma comboBox ( qui est dans l'autre classe ) de pointé sur le "this.getName" ...

    Merci 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
    Il faut que tu passe ton JComboBox à ton bouton pour qu'il le "connaisse".

    J'aurai plutôt tendance à séparer le Bouton et Son listener dans des classes différentes. De plus cela rends inutile la classe de bouton "extends JButton" si tu n'as pas à modifier le comportement (dans la plupart des cas). Et dans ce cas, c'est a ton Listener que tu passe le JComboBox en paramètre.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Je comprend pas trop ta réponse en fait ...

    si j'ai mis Jbutton c'est juste pour pouvoir cliqué dessus et donc récuperer la valeur.

    Je modifie le comportement si !! Du moins la couleur du bouton dans certain cas ...

    Il faut que tu passe ton JComboBox à ton bouton pour qu'il le "connaisse".
    Comment je fait ???

  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
    Possibilité 1 : ton Listener dans une classe séparée
    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
     
    public class MonBoutonListener implements ActionListener {
        JComboBox comboBox;
     
        public MonBoutonListener(JComboBox  comboBox){
            this.comboBox = comboBox;
        }
     
        public void actionPerformed(ActionEvent e) {
            // traitement sur comboBox
        }
    }
     
    public class MaClasse {
        private JButton bouton;
        private JComboBox comboBox;
     
     
        public void initComponents() {
            bouton = new JButton("Mon Bouton");
            comboBox = new ...;
            bouton.addActionListener(new MonBoutonListener (comboBox));
            ...
        }
    }

    Possibilité 2 : ton Listener dans une classe "interne"
    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
     
    public class MaClasse {
     
        private JButton bouton;
        private JComboBox comboBox;
     
        private class MonBoutonListener implements ActionListener {
            public MonBoutonListener(){
     
            }
     
            public void actionPerformed(ActionEvent e) {
                // traitement sur comboBox
                // Accès direct à la combo box
            }
        }
     
        public void initComponents() {
            bouton = new JButton("Mon Bouton");
            comboBox = new ...;
            bouton.addActionListener(new MonBoutonListener ());
     
            ...
     
        }
    Possibilité 3 : ton Listener définit lors de l'ajout
    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
     
    public class MaClasse {
     
        private JButton bouton;
        private JComboBox comboBox;
     
        public void initComponents() {
            bouton = new JButton("Mon Bouton");
            comboBox = new ...;
            bouton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        // traitement sur comboBox
                        // Accès direct à la combo box
                    }
                }
            );
            ...
        }

    Pas besoin de faire une nouvelle classe si ton seul besoin est de changer la couleur du bouton. Il y a déjà tout ce qu'il faut dans JButton.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Hum je vois bien, j'ai tenté la solution 1 mais j'ai évidement un souci quand je fait s1.addActionListener(new MonBoutonListener (comboBox)); car s1 est de type Station ... et meme en mettant cette ligne dans le constructeur sa me fait une erreur ... =/

    EDIT : c'est bon j'ai reussi ><" Merci encore ! FAUX

    EDIT bis : this.addActionListener(new DessinStation (Coloor,comboBox)); ne marche pas en fait dans le constructeur ><

  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
    Ton bouton implémente MouseInputListener, pour traiter les évènements de clic sur les JButton il vaut mieux utiliser ActionListener.

    Re-poste ton code.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2011, 14h40
  2. Récupérer valeur contrôle en dynamique via requête
    Par nicburger dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2005, 15h41
  3. [ActionScript] Récupérer valeur balise <param />
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 18/07/2005, 14h50
  4. CR9 - Récupérer valeurs multiples d'un champ paramètre
    Par CR9-Deb dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/07/2005, 16h08
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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