SetToolTipText dynamique

Résolu
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006 - 17 août 2005 à 14:11
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006 - 19 août 2005 à 14:52
Bonjour,



Je genere un ensemble de jpanel.

Dans chaque jpanel on peut ajouter des composants ou les supprimer.

J'appele la methode "setToolTipText" pour voir la liste des composants d'un jpanel quand la souris passe dessus.

Je mets a jour cette liste en appelant a chaque fois la meme methode.

Mais ca marche aleatoirement. Si j'ajoute un composant dans
2 jpanels par exempel, je ne vois rien pour les autres jpanels.
Pourquoi?

A un moment il affiche pour un jpanel ce qu'il faut, puis quand
j'ajoute des composants dans d'auters jpanels, je reviens a ce
jpanel et ben rien ne s'affiche.

Je n'ai surcharge aucune methode.

Bizarre!!

Merci,



empiret

8 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
18 août 2005 à 11:30
Il faut faire dans ton constructeur par exemple un

ToolTipManager.sharedInstance().registerComponent(this);

et ensuite surcharge la methode getToolTipText(MouseEvent me)
3
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
17 août 2005 à 16:36
Est-ce que ca pourrait pas lie aux listeners des jpanels?

Car a des moments je change ses listeners. Je n'arrive pas a desactiver
certains listeners, alors ce que je fais je les supprime puis je les
recree je les rajoute au jpanel.

Est ce que ca peut etre lie a mon probleme de setToolTipText??



empiret
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
18 août 2005 à 08:57
surcharge la methode getToolTipText() de Jpanel et comme ca tu affiche ce que tu veux pour chaque panel

(par defaut la methode renvoie null, d'ou pas de tooltip)
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
18 août 2005 à 10:53
Oui mais quand j'appelle setToolTipText()? dans le listener "mouseEntered"?

ou dans le constructeur de mon jpanel?(ce qui ne marche pas)

ou ou?



je dois aussi de toute facon surcharger la methode setToolTipText()

public void setToolTipText(String t) {

String text = getToolTipText();

putClientProperty(TOOL_TIP_TEXT_KEY, text);

ToolTipManager toolTipManager = ToolTipManager.sharedInstance();

if (text != null) {


toolTipManager.registerComponent(this);

} else {

toolTipManager.unregisterComponent(this);

}

}



car getToolTipText ne rendra jamais null et si je ne surcharge pas ca ne va pas marcher.

La source (Jcomponent):

public void setToolTipText(String text) {

String oldText = getToolTipText();

putClientProperty(TOOL_TIP_TEXT_KEY, text);

ToolTipManager toolTipManager = ToolTipManager.sharedInstance();

if (text != null) {

if (oldText == null) {


toolTipManager.registerComponent(this);

}

} else {

toolTipManager.unregisterComponent(this);

}

}



empiret
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
18 août 2005 à 11:14
C'est bien la methode getToolTipText() qui doit etre surchargee et non pas getToolTipText(MouseEvent evt)??



empiret
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
18 août 2005 à 11:20
surcharge la methode getToolTipText(MouseEvent evt),

elle te permet par exemple d'afficher des coordonnees sur la carte.

l'autre renvoie qqchose d'invariant.
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
18 août 2005 à 11:24
mais ca suffit de surcharger la methode getToolTipText()??



source:

public String getToolTipText(MouseEvent event) {

return getToolTipText();

}



empiret
0
empiret Messages postés 38 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 13 mars 2006
19 août 2005 à 14:52
Finalement ca marche bien, mais il faut faire attention a ne pas supprimer tous les listeners et les MouseListeners d'un jpanel.

A un moment je supprime tous les listeners d'un jpanel et ce n'est pas bon.





Voila,



Merci.

empiret
0
Rejoignez-nous