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

Langage Java Discussion :

Trouver nom objet et non de la classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut Trouver nom objet et non de la classe
    Bonjour a tous!

    J'ai un petit souci de conception... En gros, je suis en train de creer un programme avec une interface graphique. Donc une classe Interface, une classe Buttonlistener pour gerer les actions.

    En gros, dans Interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    ButtonListener listener = new ButtonListener(this);
     
    JButton bouton1 = new JButton("bouton");
    JButton bouton2 = new JButton("bouton");
    ...
     
    bouton1.addActionListener(listener);
    bouton2.addActionListener(listener);
    ...
    J'aimerais maintenant dans ma classe ButtonListener trouver le nom de l'objet qui est a l'origine de l'action declenché. J'ai essaye differentes choses mais je suis coincé..
    J'avias pensé a getClass().getName() mais ca me donne le nom de la classe, c'est a dire :
    javax.swing.JButton mais je voudrais trouver bouton1 et bouton2 etc.

    Je ne sais pas si je me suis bien fait comprendre.... :s
    Je l'espere en tout cas, tout comme j'espere que quelqu'un pourra m'aider!


    Merci d'avance!

    Zenklys

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    Tu peux donner un nom à tes composants ( voir la doc. dans java.awt.Component)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bouton1.setName("bouton1");
    bouton2.setName("bouton2");

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    Hmmm... En effet, ca parait etre une solution mais quelle est l'instruction pour acceder a ce nom alors?

    J'ai essayé ceci dans la classe ButtonListener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    public void actionPerformed(ActionEvent e)
    {
         String c;
         c=e.getSource().getClass().getName();
         System.out.println(c);
    }
    ...
    En ajoutant bien dans l'autre classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bouton1.setName("bouton 1");
    Ne marche pas...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    Si tu veux chipoter tu peux faire l'introspection de ta classe.
    Regarde sur ce site le tutoriel...
    http://ricky81.developpez.com/tutori...pi/reflection/

    Remarque

    Il ne faut pas confondre objets (instances de classe) et variables (références d'objet).
    En JAVA tu ne déclares pas un objet de type JButton mais une référence vers un objet de la classe JButton.
    Donc...un même bouton pourrait être référencés par variables différentes.
    Quel nom de variable choisir dans ce cas ?
    Je ne penses pas qu' il soit possible de connaitre le nom de toutes ces variables.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    Ceci dit, pour répondre à ta question...Remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c=e.getSource().getClass().getName();
    par...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (e.getSource() instanceof Component) 
       c=((Component) e.getSource()).getName();
    else 
       c=e.getSource().toString();

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/11/2014, 17h41
  2. Nom d'objet 'SYSOBJECT' non valide.
    Par sofienems dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/07/2010, 09h02
  3. Réponses: 1
    Dernier message: 18/06/2010, 16h58
  4. Réponses: 0
    Dernier message: 29/01/2009, 10h43
  5. Trouver un objet via son nom
    Par rvdth dans le forum Windows Forms
    Réponses: 7
    Dernier message: 29/03/2008, 13h58

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