Multi-line tooltips in Java?

Viewed 66631

I'm trying to display tooltips in Java which may or may not be paragraph-length. How can I word-wrap long tooltips?

10 Answers

If you wrap the tooltip in <html> and </html> tags, you can break lines with <br> tags. See https://web.archive.org/web/20060625031340/http://www.jguru.com/faq/view.jsp?EID=10653 for examples and discussion. Main take-awy from that discussion: fButton.setToolTipText("<html><font face=\"sansserif\" color=\"green\">first line<br>second line</font></html>");

Or you can use the JMultiLineToolTip class that can be found many places on the net, including https://github.com/ls-cwi/yoshiko-app/blob/master/src/main/java/com/yoshiko/internal/view/JMultiLineToolTip.java

Tooltip text which starts with "<html>" will be treated as HTML. Of course that might be very wide HTML.

You can override JComponent.createTooltip to replace the tooltip with your own component which can display whatevee you like.

Use HTML tooltips and manually break your lines (a simple word tokenizer with a fixed line length should do it). Just make sure your tooltip text starts with "<HTML>". Break lines with "<BR/>" or "<P>". I realize it's not the most clean solution and Java's HTML support is horrible, but it should get things done.

You can subclass JToolTip, which is a Component, and override createToolTip() on the component.

Related