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 :

Listener et introspection


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Listener et introspection
    Salut tout le monde!

    J'ai un souci :

    J'ai plusieurs composants (Hyperlink en SWT), et j'aimerai leur attribuer tous le même listener, la même action quoi! En gros je voudrai que chaque fois qu'on passe la souris sur ce composant, le composant en question se souligne. Comme c'est pour tous les composants la même action, je veux créer qu'un seul listener. Mais je veux que seul le composant survolé se souligne.

    Code exemple : 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
     
    Hyperlink1.addMouseTrackListener(mouseTrackListener);
    Hyperlink2.addMouseTrackListener(mouseTrackListener);
    Hyperlink3.addMouseTrackListener(mouseTrackListener);
    Hyperlink4.addMouseTrackListener(mouseTrackListener);
     
    MouseTrackAdapter mouseTrackListener = new MouseTrackAdapter(){
    	public void mouseEnter(MouseEvent e) {
                  Hyperlink hl = ??composant actuellement survolé //souligner le composant survolé et pas les autres
                  hl.setUnderline(true);
    	}
    	public void mouseExit(MouseEvent e) {
                  Hyperlink hl = ??composant plus survolé
    	      //ne plus souligner le composant survolé 
                  hl.setUnderline(false);
    	} 
    };

    Je pense qu'il faut utiliser l'introspection pour déterminer quel composant est actuellement survolé et ainsi pouvoir le souligné ou pas, mais c'est là que je bloque, j'ai beau lire et relire les tutos de l'introspection, je sais pas y faire...

    Je vois tout faux? Il y a un autre moyen plus simple?

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, pour récupérer le composant tu pourrais faire comme ceci (en vérifiant l'origine du repère) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void mouseEnter(MouseEvent e) {
        Hyperlink hl = taFramePrincipale.getComponentAt(e.getX(), e.getY());//souligner le composant survolé et pas les autres
        hl.setUnderline(true);
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    En effet cette solution fonctionne, mais je la trouve un peu lente. Si je passe rapidement la souris dessus mon contrôle, il n'a pas le temps de se souligner puis de se "déssouligner", rien ne se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void mouseEnter(MouseEvent e) {
    	Hyperlink hl = (Hyperlink)e.getSource(); //c'est sur SWT
            hl.setUnderlined(true);
    }

Discussions similaires

  1. [JSP]comment créer un listener pour ma base de données
    Par Ekimasu dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/05/2004, 14h49
  2. [JNDI] [LDAP] [DirContext] [LdapContext] DN / introspection
    Par wazup dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 09/04/2004, 15h16
  3. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14
  4. TNS:listener could not resolve SERVICE_NAME given in connect
    Par Sinclair dans le forum Administration
    Réponses: 15
    Dernier message: 20/08/2003, 17h26
  5. DoubleClick Listener & ENTER
    Par Pro_Fete dans le forum Composants
    Réponses: 4
    Dernier message: 27/01/2003, 13h23

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