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 Styles and apply them to
paragraphs in a document. This mini-word processor will have the
following features:
User can define
Styles, using a simple dialog box that allows attributes such as font size, line spacing, bold, and italics to be specified.User can set the
Stylefor the paragraph at the current cursor position.User can modify a
Styleand 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
Elements that refer to it. Therefore, when changes
are made to a Style, the only way we can get the
Elements to be redrawn with the new attributes is
to keep track of which Elements 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
Styles, modify Styles, 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
Elements use which Styles.
Finally,
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