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

SWT/JFace Java Discussion :

sélection d'un texte sur hover


Sujet :

SWT/JFace Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 35
    Points
    35
    Par défaut sélection d'un texte sur hover
    Bonjour,

    J'utilise un composant 'org.eclipse.swt.widgets.Text' et cherche à intercepter l'évenements : hover.

    Rien d'extraordinaire pour l'instant
    text.addMouseTrackListener(new MouseTrackListener(){
    public void mouseHover(MouseEvent arg0) {
    // code ...
    }
    });


    Seulement, j'aimerais récupérer le texte sous la souris. Par exemple, récupérer path2 dans le texte suivant :
    'path1/path2/path3/.../pathx'


    J'obtiens bien les coordonnées de la souris :
    HOVER : MouseEvent{Text {} time=8829843 data=null button=0 stateMask=0 x=207 y=11 count=0}


    Comment faire le lien avec le texte ???

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    Quand ton Listener est appelé tu récupères un MouseEvent, tu peux faire quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void mouseHover(MouseEvent e) {
        Text text = (Text) e.getSource();
        String s = text.getText(); // tu récupères la chaine de charactère
     
        ...
    }

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Points : 379
    Points
    379
    Par défaut
    Excuse-moi je viens de comprendre que tu demandes quelque chose de plus compliqué.

    Une fois que tu as le texte tu peux t'en sortir comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ... // le code au dessus
    int indent = text.getBorderWidth();
    int charidx = 0;
    GC gc = new GC(text);
    while (indent < e.x) {
        indent += gc.stringExtent(Character.toString(text.charAt(charidx++)));
    }
    // à partir de là tu as l'indice du caractère sous le pointeur je pense que tu peux t'en sortir
    gc.dispose(); // ne pas oublier de libérer les ressources
    ...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 39
    Points : 35
    Points
    35
    Par défaut [résolu] sélection d'un texte sur hover
    Effectivement ça marche. Merci beaucoup pour ton aide.

    Text m_text = new Text(parent, SWT.BORDER);
    m_text.setText("essai de texte");
    m_text.addMouseTrackListener(new MouseTrackListener(){

    public void mouseHover(MouseEvent evt) {

    int indent = m_text.getBorderWidth();
    int charidx = 0;
    GC gc = new GC(m_text);
    String txt = m_text.getText();
    while (indent < evt.x) {
    indent += gc.stringExtent(Character.toString(txt.charAt(charidx++))).x;
    }
    System.out.println("HOVER : " + txt.substring(0, charidx));
    gc.dispose();
    }
    });

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

Discussions similaires

  1. Affichage texte sur une image (hover)
    Par ParisElliot dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 16/11/2014, 16h34
  2. Texte devient blanc sur hover
    Par ickyknox dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/11/2012, 20h38
  3. Soulignement du texte sur hover
    Par baggie dans le forum Mise en page CSS
    Réponses: 18
    Dernier message: 14/06/2012, 10h45
  4. Réponses: 3
    Dernier message: 13/09/2009, 03h40
  5. Sélection texte sur navigateur
    Par kayzer844 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 05/05/2006, 10h47

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