Support for HTML
The use of HTML is supported by most Swing components. For example, it is possible to use HTML markup to create multiline and multifont labels:
JLabel label = new JLabel("<html>line 1<p><font color=blue size=+2>"
+ "big blue</font> line 2<p>line 3</html>");There are a number of things to watch out for when taking advantage of Swing’s HTML support:
The text is interpreted as HTML only if the first six characters are
<html>(case doesn’t matter).The font of components using HTML may not match that of components that don’t.
Bad HTML may throw
RuntimeExceptions, so test your code thoroughly. (Older SDKs are especially fragile in this respect. SDK 1.2 can’t even handle an unknown tag.)There is no good way to determine if a particular component supports HTML programmatically.
XHTML-style self-closing tags (such as
<br />) insert a spurious>character into the output, at least as of SDK 1.4.1.SDKs prior to 1.3 are unable to size properly in the presence of
<br>tags, so for maximum compatibility use<p>tags instead. Newer SDKs treat the two tags identically.
HTML support keeps improving with each release of Swing, but
serious bugs remain. Slightly older releases are riddled with bugs in
their HTML implementations. (Versions 1.1 and earlier don’t support HTML
at all. The JLabel would be displayed
as 77 characters of verbatim text, just like the java.awt.Label in Figure 4-6.)
Figure 4-6. A JLabel and a java.awt.Label displaying the same text
As of SDK 1.4.1 the following components ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access