Forcer une info-bulle Java à apparaître
Donné un JTextField
(ou tout JComponent
d'ailleurs), comment peut-on aller sur les forcer ce composant est désigné info-bulle apparaît, sans aucun apport direct de l'événement de l'utilisateur? En d'autres termes, pourquoi n'est-il pas JComponent.setTooltipVisible(boolean)
?
source d'informationauteur Joseph
Vous devez vous connecter pour publier un commentaire.
La seule façon (en plus de la création de votre propre fenêtre info-bulle) que j'ai trouvé est à emmulate les touches CTRL+F1 frappe sur focus:
Malheureusement, l'info-bulle disparaît dès que vous déplacez votre souris (en dehors de la composante) ou après un délai (voir
ToolTipManager.setDismissDelay
).Vous avez besoin d'invoquer l'Action par défaut pour afficher l'info-bulle. Par exemple pour afficher une info-bulle lorsque un composant obtient le focus, vous pouvez ajouter ce qui suit FocusListener pour le composant:
Edit:
Le code ci-dessus ne semble pas fonctionner. Une autre approche est l'envoi d'une MouseEvent pour le composant:
Cette approche entraîne un léger délai avant que l'info-bulle s'affiche comme il a simulé la souris entrant dans le composant. Pour un affichage immédiat de l'info-bulle vous pouvez utiliser pstanton de la solution.
Pour moi fonctionne de la même version indiqué ci-dessus (à la place de la Minuterie j'ai utilisé SwingUtilities et invokeLater approche):
Vous pouvez accéder à la
ToolTipManager
définissez le délai initial de 0 et de l'envoyer à un événement. N'oubliez pas de restaurer les valeurs par la suite.Ce n'est pas un
ToolTip
mais vous pouvez utiliser une info-bulle:http://timmolderez.be/balloontip/doku.php
Il montre juste à l'appel et se sent mieux dans quelques instants, puis par Défaut
ToolTip