I want to add some tooltips to only a certain text inside a JTextPane. As an example, if there is a reference link text inside the JTextPane I want to add a tooltip to that text to show the link. Is there any way I can achieve this functionality?
Share
Good question.
First Swing supports HTML, so to show tooltip with link you just have to say:
comp.setToolTipText("<html><a href='http://www.google.com'>google</a></html>");The problem is making this tooltip clickable.
Unfortunately it is not done by Swing itself.
Tooltip is created by ToolTipManager. When you call setToolTipText() Jcomponent adds the instance of itself to shared instance of Tooltip manager that is responsible on showing the tooltip (using method
show()that cannot be overridden. You cannot change the tooltip manager itself too.So, the best solution I can suggest is to do the following.
You can listen to the AWT events using
Toolkit.getDefaultToolkit().addAWTEventListener()So, when tooltip is being showed catch it, discover, and add mouse listener on it. This mouse listener will make the tooltip itself clickable.
Here is the exercise I have just written. You can use it as a reference. Good luck.