A Stylized Editor
We’ve now covered
all the classes and interfaces related to the concept of document
styles. The remainder of this chapter explores an in-depth example
that shows how to create Style
s and apply them to
paragraphs in a document. This mini-word processor will have the
following features:
User can define
Style
s, using a simple dialog box that allows attributes such as font size, line spacing, bold, and italics to be specified.User can set the
Style
for the paragraph at the current cursor position.User can modify a
Style
and see the changes reflected in all paragraphs using the modifiedStyle
.
This last item requires a bit of work. This is not trivial because
the relationship between an Element
and its
Style
is one-directional. That is, a
Style
has no knowledge of the
Element
s that refer to it. Therefore, when changes
are made to a Style
, the only way we can get the
Element
s to be redrawn with the new attributes is
to keep track of which Element
s use which
Style
. We’ll see one way to implement later.
The example consists of three classes: StyleFrame
,
StyleBox
, and StylishDocument
.
StyleFrame
is the main application frame. It
contains a JTextPane
for editing text and a
JMenuBar
that allows the user to create
Style
s, modify Style
s, and set
the Style
for the paragraph at the current cursor
position. The document used by the text pane is an instance of
StylishDocument
, an extension of
DefaultStyledDocument
that keeps track of which
Element
s use which Style
s.
Finally,
Get Java Swing now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.