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

AWT/Swing Java Discussion :

changer un tooltip en cours d'affichage


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 132
    Points
    132
    Par défaut changer un tooltip en cours d'affichage
    Bonjour,

    voila mon probleme :
    j'ai un composant qui m'affiche un tooltip.
    Je voudrais pouvoir changer ce tooltip lorsqu'il est en cours d'affichage, c'est à dire que le tooltip m'affiche "tata" au début d'affichage et au bout d'un moment, qi'il m'affiche "tutu". J'ai essayé en faisant un setTooltipText("tutu");(dans un thread à part au bout d'un certain temps) mais bien évidemment ca ne change le tooltip que si je bouge la souris.

    Avez-vous déjà fait ca?

    Merci.
    Cdlt

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    La modif de tout composant Swing doit se faire dans l'EDT, or quand tu lances un Thread tu sors de l'EDT.

    Pour rerentrer dans l'EDT il faut procéder de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SwingUtilities.invokeLater(new Runnable() {
     
       public void run() {
          doSomethingInTheEDT();
       }
     
    });
    Ou alors de passer par un timer Swing qui déclenche des évènements dans l'EDT toutes les X millisecondes

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Points : 160
    Points
    160
    Par défaut
    Je ne pense pas que tu puisse faire ca en appelant la méthode setToolTip ...

    En réalité cette méthode va indiquer au composant le text a afficher sous la forme de JToolTip lors du passage de la souris.

    Pour personaliser ton toolTipText il faut implémenter une nouvelle classe par exemple MyToolTip qui hérite de JToolTip et qui arffiche deux texts différents ou plus (il y'a quelques exemple sur le net pour afficher du text sur plusieurs lignes a voir à l'aide de google si tu as le temps).

    Ensuite deux solutions :
    - Apres avoir instancié ton composant (exemple jbutton) et ta classe MyToolTip . tu fais appel al methode monToolTip .setComponent(mon_bouton)

    - surcharger la méthode createToolTip() du JButton pour afficher le MyToolTip au lieu du JToolTip

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Points : 132
    Points
    132
    Par défaut
    re,

    si la méthode à Sinok marche très bien (comme dab).
    merci beaucoup. Je ne me souvenais pas des cas d'utilisation de invokeLater.

    Merci quand meme pour les autres réponses.

    Cdlt

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

Discussions similaires

  1. modification de hint en cours d'affichage
    Par OutOfRange dans le forum Langage
    Réponses: 7
    Dernier message: 31/10/2005, 23h29
  2. [t-sql] changer de BD en cours de route
    Par olivc dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/06/2005, 11h06
  3. Changer de JPanel en cours d'applications
    Par MrEddy dans le forum Composants
    Réponses: 3
    Dernier message: 12/05/2005, 17h22
  4. Réponses: 2
    Dernier message: 21/03/2005, 09h03
  5. Réponses: 2
    Dernier message: 10/10/2004, 23h12

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