java.lang.Object | ||||
↳ | javax.swing.text.EditorKit | |||
↳ | javax.swing.text.DefaultEditorKit | |||
↳ | javax.swing.text.StyledEditorKit | |||
↳ | javax.swing.text.html.HTMLEditorKit |
The Swing JEditorPane text component supports different kinds of content via a plug-in mechanism called an EditorKit. Because HTML is a very popular format of content, some support is provided by default. The default support is provided by this class, which supports HTML version 3.2 (with some extensions), and is migrating toward version 4.0. The <applet> tag is not supported, but some support is provided for the <object> tag.
There are several goals of the HTML EditorKit provided, that have an effect upon the way that HTML is modeled. These have influenced its design in a substantial way.
The modeling of HTML is provided by the class HTMLDocument
.
Its documention describes the details of how the HTML is modeled.
The editing support leverages heavily off of the text package.
HTMLFactory
class. This can
be easily changed by subclassing or replacing the HTMLFactory
and reimplementing the getViewFactory method to return the alternative
factory.
JEditorPane.setPage
.
This is controlled by a property on the document. The method
createDefaultDocument can
be overriden to change this. The batching of work is done
by the HTMLDocument.HTMLReader
class. The actual
work is done by the DefaultStyledDocument
and
AbstractDocument
classes in the text package.
The support for this is provided by the StyleSheet
class. The presentation of the HTML can be heavily influenced
by the setting of the StyleSheet property on the EditorKit.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
HTMLEditorKit.HTMLFactory | A factory to build views for HTML. | ||||||||||
HTMLEditorKit.HTMLTextAction | An abstract Action providing some convenience methods that may be useful in inserting HTML into an existing document. | ||||||||||
HTMLEditorKit.InsertHTMLTextAction | InsertHTMLTextAction can be used to insert an arbitrary string of HTML into an existing HTML document. | ||||||||||
HTMLEditorKit.LinkController | Class to watch the associated component and fire hyperlink events on it when appropriate. | ||||||||||
HTMLEditorKit.Parser | Interface to be supported by the parser. | ||||||||||
HTMLEditorKit.ParserCallback | The result of parsing drives these callback methods. |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | BOLD_ACTION | The bold action identifier | |||||||||
String | COLOR_ACTION | The Color choice action identifier The color is passed as an argument | |||||||||
String | DEFAULT_CSS | Default Cascading Style Sheet file that sets up the tag views. | |||||||||
String | FONT_CHANGE_BIGGER | The font size increase to next value action identifier | |||||||||
String | FONT_CHANGE_SMALLER | The font size decrease to next value action identifier | |||||||||
String | IMG_ALIGN_BOTTOM | Align images at the bottom. | |||||||||
String | IMG_ALIGN_MIDDLE | Align images in the middle. | |||||||||
String | IMG_ALIGN_TOP | Align images at the top. | |||||||||
String | IMG_BORDER | Align images at the border. | |||||||||
String | ITALIC_ACTION | The italic action identifier | |||||||||
String | LOGICAL_STYLE_ACTION | The logical style choice action identifier The logical style is passed in as an argument | |||||||||
String | PARA_INDENT_LEFT | The paragraph left indent action identifier | |||||||||
String | PARA_INDENT_RIGHT | The paragraph right indent action identifier |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs an HTMLEditorKit, creates a StyleContext,
and loads the style sheet.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Creates a copy of the editor kit.
| |||||||||||
Create an uninitialized text storage model
that is appropriate for this type of editor.
| |||||||||||
Called when the kit is being removed from the
JEditorPane.
| |||||||||||
returns the AccessibleContext associated with this editor kit
| |||||||||||
Fetches the command list for the editor.
| |||||||||||
Get the MIME type of the data that this
kit represents support for.
| |||||||||||
Returns the default cursor.
| |||||||||||
Gets the input attributes used for the styled
editing actions.
| |||||||||||
Returns the cursor to use over hyper links.
| |||||||||||
Get the set of styles currently being used to render the
HTML elements.
| |||||||||||
Fetch a factory that is suitable for producing
views of any models that are produced by this
kit.
| |||||||||||
Inserts HTML into an existing document.
| |||||||||||
Called when the kit is being installed into the
a JEditorPane.
| |||||||||||
Indicates whether an html form submission is processed automatically
or only
FormSubmitEvent is fired. | |||||||||||
Inserts content from the given stream.
| |||||||||||
Specifies if an html form submission is processed
automatically or only
FormSubmitEvent is fired. | |||||||||||
Sets the default cursor.
| |||||||||||
Sets the cursor to use over links.
| |||||||||||
Set the set of styles to be used to render the various
HTML elements.
| |||||||||||
Write content from a document to the given stream
in a format appropriate for this kind of content handler.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Copies the key/values in
element s AttributeSet into
set . | |||||||||||
Fetch the parser to use for reading HTML streams.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
The bold action identifier
The Color choice action identifier The color is passed as an argument
Default Cascading Style Sheet file that sets up the tag views.
The font size increase to next value action identifier
The font size decrease to next value action identifier
Align images at the bottom.
Align images in the middle.
Align images at the top.
Align images at the border.
The italic action identifier
The logical style choice action identifier The logical style is passed in as an argument
The paragraph left indent action identifier
The paragraph right indent action identifier
Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.
Create an uninitialized text storage model that is appropriate for this type of editor.
Called when the kit is being removed from the JEditorPane. This is used to unregister any listeners that were attached.
c | the JEditorPane |
---|
returns the AccessibleContext associated with this editor kit
Fetches the command list for the editor. This is the list of commands supported by the superclass augmented by the collection of commands defined locally for style operations.
Get the MIME type of the data that this
kit represents support for. This kit supports
the type text/html
.
Gets the input attributes used for the styled editing actions.
Get the set of styles currently being used to render the HTML elements. By default the resource specified by DEFAULT_CSS gets loaded, and is shared by all HTMLEditorKit instances.
Fetch a factory that is suitable for producing views of any models that are produced by this kit.
Inserts HTML into an existing document.
doc | the document to insert into |
---|---|
offset | the offset to insert HTML at |
popDepth | the number of ElementSpec.EndTagTypes to generate before inserting |
pushDepth | the number of ElementSpec.StartTagTypes with a direction of ElementSpec.JoinNextDirection that should be generated before inserting, but after the end tags have been generated |
insertTag | the first tag to start inserting into document |
RuntimeException | (will eventually be a BadLocationException) if pos is invalid |
---|---|
BadLocationException | |
IOException |
Called when the kit is being installed into the a JEditorPane.
c | the JEditorPane |
---|
Indicates whether an html form submission is processed automatically
or only FormSubmitEvent
is fired.
Inserts content from the given stream. If doc
is
an instance of HTMLDocument, this will read
HTML 3.2 text. Inserting HTML into a non-empty document must be inside
the body Element, if you do not insert into the body an exception will
be thrown. When inserting into a non-empty document all tags outside
of the body (head, title) will be dropped.
in | the stream to read from |
---|---|
doc | the destination for the insertion |
pos | the location in the document to place the content |
IOException | on any I/O error |
---|---|
BadLocationException | if pos represents an invalid location within the document |
RuntimeException | (will eventually be a BadLocationException) if pos is invalid |
Specifies if an html form submission is processed
automatically or only FormSubmitEvent
is fired.
By default it is set to true.
Set the set of styles to be used to render the various HTML elements. These styles are specified in terms of CSS specifications. Each document produced by the kit will have a copy of the sheet which it can add the document specific styles to. By default, the StyleSheet specified is shared by all HTMLEditorKit instances. This should be reimplemented to provide a finer granularity if desired.
Write content from a document to the given stream in a format appropriate for this kind of content handler.
out | the stream to write to |
---|---|
doc | the source for the write |
pos | the location in the document to fetch the content |
len | the amount to write out |
IOException | on any I/O error |
---|---|
BadLocationException | if pos represents an invalid location within the document |
Copies the key/values in element
s AttributeSet into
set
. This does not copy component, icon, or element
names attributes. Subclasses may wish to refine what is and what
isn't copied here. But be sure to first remove all the attributes that
are in set
.
This is called anytime the caret moves over a different location.
Fetch the parser to use for reading HTML streams. This can be reimplemented to provide a different parser. The default implementation is loaded dynamically to avoid the overhead of loading the default parser if it's not used. The default parser is the HotJava parser using an HTML 3.2 DTD.