SetToolTipText dynamique [Résolu]

empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 17 août 2005 à 14:11 - Dernière réponse : empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

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

ToolTipManager.sharedInstance().registerComponent(this);

et ensuite surcharge la methode getToolTipText(MouseEvent me)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dmaillet
empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 17 août 2005 à 16:36
0
Utile
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
Commenter la réponse de empiret
dmaillet 500 Messages postés mercredi 20 août 2003Date d'inscription 11 juillet 2007 Dernière intervention - 18 août 2005 à 08:57
0
Utile
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)
Commenter la réponse de dmaillet
empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 18 août 2005 à 10:53
0
Utile
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
Commenter la réponse de empiret
empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 18 août 2005 à 11:14
0
Utile
C'est bien la methode getToolTipText() qui doit etre surchargee et non pas getToolTipText(MouseEvent evt)??



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

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

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



source:

public String getToolTipText(MouseEvent event) {

return getToolTipText();

}



empiret
Commenter la réponse de empiret
empiret 38 Messages postés mercredi 6 avril 2005Date d'inscription 13 mars 2006 Dernière intervention - 19 août 2005 à 14:52
0
Utile
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
Commenter la réponse de empiret

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.