
Use HTML and CSS in Text Components #52
Chapter 7, Text
|
275
HACK
This looks amusing and, when you type, the new text is indeed backward.
But the novelty wears off quickly; messing with the display screws up the
drawing of the caret and text highlighting, along with the handling of mouse
clicks to set the insert point. In playing around with
JTextArea
, we found
that we hosed word wrap, too, so we were stuck on the top line.
So, it’s a cute trick, but let’s reserve it for labels, OK?
H A C K
#52
Use HTML and CSS in Text Components Hack #52
Spruce up your plain JLabels and buttons using HTML and CSS effects, such
as underlines, color, and even embedded tables.
You may know that you can display HTML using a subclass of
JTextPane
,
but did you also know that Swing supports simple HTML and CSS in virtu-
ally every text component? As long as you can trick it into showing it as
HTML instead of the markup, you can do some pretty nifty things.
Here’s the Trick
Every text component in Swing can display HTML, but the component
needs to know that the text is HTML, rather than a string that just happens
to contain a bunch of angle brackets. Since there is no
setHTMLText(true)
method on JTextComponent, you have to resort to being a little trickier. If the
string passed to the component’s constructor (or
setText( )) method starts
with
<html>, then the component will switch to HTML mode. Here is a
quick example:
JButton b1a ...