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.
HTMLDocument-
The parser is replacable. The default parser is the Hot Java
parser which is DTD based. A different DTD can be used, or an
entirely different parser can be used. To change the parser,
reimplement the getParser method. The default parser is
dynamically loaded when first asked for, so the class files
will never be loaded if an alternative parser is used. The
default parser is in a separate package called parser below
this package.
-
The parser drives the ParserCallback, which is provided by
HTMLDocument. To change the callback, subclass HTMLDocument
and reimplement the createDefaultDocument method to return
document that produces a different reader. The reader controls
how the document is structured. Although the Document provides
HTML support by default, there is nothing preventing support of
non-HTML tags that result in alternative element structures.
-
The default view of the models are provided as a hierarchy of
View implementations, so one can easily customize how a particular
element is displayed or add capabilities for new kinds of elements
by providing new View implementations. The default set of views
are provided by the
HTMLFactory class. This can
be easily changed by subclassing or replacing the HTMLFactory
and reimplementing the getViewFactory method to return the alternative
factory.
-
The View implementations work primarily off of CSS attributes,
which are kept in the views. This makes it possible to have
multiple views mapped over the same model that appear substantially
different. This can be especially useful for printing. For
most HTML attributes, the HTML attributes are converted to CSS
attributes for display. This helps make the View implementations
more general purpose
JEditorPane.setPagecreateDefaultDocumentHTMLDocument.HTMLReaderDefaultStyledDocumentAbstractDocumentStyleSheet
COLOR_ACTION
public static final String COLOR_ACTION
The Color choice action identifier
The color is passed as an argument
DEFAULT_CSS
public static final String DEFAULT_CSS
Default Cascading Style Sheet file that sets
up the tag views.
IMG_ALIGN_BOTTOM
public static final String IMG_ALIGN_BOTTOM
Align images at the bottom.
- "html-image-align-bottom"
IMG_ALIGN_MIDDLE
public static final String IMG_ALIGN_MIDDLE
Align images in the middle.
- "html-image-align-middle"
LOGICAL_STYLE_ACTION
public static final String LOGICAL_STYLE_ACTION
The logical style choice action identifier
The logical style is passed in as an argument
- "html-logical-style-action"
createInputAttributes
protected void createInputAttributes(Element element,
MutableAttributeSet set) Copies the key/values in
elements 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.
- createInputAttributes in interface StyledEditorKit
getActions
public Action[] getActions()
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.
- getActions in interface StyledEditorKit
getParser
protected HTMLEditorKit.Parser getParser()
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.
getStyleSheet
public StyleSheet getStyleSheet()
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.
View More Examples of getStyleSheet()
1: import ;
2: import ;
3: import ;
4: ...
5:
6: textPane.setEditorKit(new HTMLEditorKit());
7:
8: ...
9:
10: protected HTMLDocument createDefaultDocument(HTMLEditorKit kit) {
11: ...
12: StyleSheet styles = kit.getStyleSheet();
View Full Code Here
1: import ;
2: import ;
3: import ;
4: ...
5: {
6: protected static HTMLEditorKit htmlKit = null;
7: protected static StyleSheet theStyleSheet = null;
8: ...
9: if (htmlKit==null) {
10: htmlKit = new HTMLEditorKit();
11: ...
12: theStyleSheet = htmlKit.getStyleSheet();
View Full Code Here
1:
2: private class Callback extends HTMLEditorKit.ParserCallback
3: {
4: ...
5: {
6: HTMLEditorKit kit;
7: ...
8: kit = (HTMLEditorKit) getEditorKitForContentType ("text/html");
9: ...
10: StyleSheet ss = kit.getStyleSheet();
View Full Code Here
insertHTML
public void insertHTML(HTMLDocument doc,
int offset,
String html,
int popDepth,
int pushDepth,
HTML.Tag insertTag)
throws BadLocationException,
IOException Inserts HTML into an existing document.
doc - the document to insert intooffset - the offset to insert HTML atpopDepth - the number of ElementSpec.EndTagTypes to generate before
insertingpushDepth - the number of ElementSpec.StartTagTypes with a direction
of ElementSpec.JoinNextDirection that should be generated
before inserting, but after the end tags have been generatedinsertTag - the first tag to start inserting into document
RuntimeException - (will eventually be a BadLocationException)
if pos is invalid
View More Examples of install(JEditorPane c)
1: import ;
2: import ;
3: import ;
4: ...
5: JEditorPane editorPane = new JEditorPane();
6: HTMLEditorKit editorKit = new HTMLEditorKit();
7: ...
8: editorKit.install(editorPane);
9: editorPane.setEditorKit(editorKit);
View Full Code Here
1: import ;
2: import ;
3: import ;
4: ...
5: JEditorPane editorPane = new JEditorPane();
6: HTMLEditorKit editorKit = new HTMLEditorKit();
7: ...
8: editorKit.install(editorPane);
9: editorPane.setEditorKit(editorKit);
View Full Code Here
isAutoFormSubmission
public boolean isAutoFormSubmission()
Indicates whether an html form submission is processed automatically
or only FormSubmitEvent is fired.
- true if html form submission is processed automatically,
false otherwise.
read
public void read(Reader in,
Document doc,
int pos)
throws IOException,
BadLocationException 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.
- read in interface DefaultEditorKit
in - the stream to read fromdoc - the destination for the insertionpos - the location in the document to place the
content
View More Examples of read(Reader in,Document doc,int pos)
1: import ;
2: import ;
3:
4: ...
5: private JScrollPane newPane;
6: private HTMLEditorKit htmlKit;
7: private HTMLDocument htmlDoc;
8: ...
9:
10: htmlKit = new HTMLEditorKit();
11: htmlDoc = (HTMLDocument)(htmlKit.createDefaultDocument());
12: ...
13: r = new InputStreamReader(new FileInputStream(helpfile));
14: htmlKit.read(r, htmlDoc, 0);
View Full Code Here
1: import ;
2: import ;
3: import ;
4: ...
5:
6: public class HtmlInputStreamToFileParser extends HTMLEditorKit.ParserCallback {
7:
8: ...
9: ioe.printStackTrace();
10: HTMLEditorKit kit = new HTMLEditorKit();
11: Document doc = kit.createDefaultDocument();
12: ...
13: try {
14: kit.read(reader, doc, 0);
View Full Code Here
1: import ;
2: import ;
3: import ;
4: ...
5:
6: public class SimpleHtmlToPlainParser extends HTMLEditorKit.ParserCallback {
7: private boolean ignoreText;
8: ...
9: ioe.printStackTrace();
10: HTMLEditorKit kit = new HTMLEditorKit();
11: Document doc = kit.createDefaultDocument();
12: ...
13: try {
14: kit.read(reader, doc, 0);
View Full Code Here
1: import ;
2: import ;
3: import ;
4: ...
5:
6: textPane.setEditorKit(new HTMLEditorKit());
7:
8: ...
9:
10: protected HTMLDocument createDefaultDocument(HTMLEditorKit kit) {
11: StyleSheet styles = kit.getStyleSheet();
12: ...
13: doc.setBase(collateralURL);
14: kit.read(htmlInput,doc,0);
View Full Code Here
1: import ;
2: import ;
3:
4: ...
5: {
6: HTMLEditorKit kit = new HTMLEditorKit();
7: HTMLDocument html = (HTMLDocument) kit.createDefaultDocument();
8: ...
9: {
10: kit.read(reader, html, 0);
11: }
View Full Code Here
setAutoFormSubmission
public void setAutoFormSubmission(boolean isAuto)
Specifies if an html form submission is processed
automatically or only FormSubmitEvent is fired.
By default it is set to true.
setStyleSheet
public void setStyleSheet(StyleSheet s)
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
public void write(Writer out,
Document doc,
int pos,
int len)
throws IOException,
BadLocationException Write content from a document to the given stream
in a format appropriate for this kind of content handler.
- write in interface DefaultEditorKit
out - the stream to write todoc - the source for the writepos - the location in the document to fetch the
contentlen - the amount to write out
View More Examples of write(Writer out,Document doc,int pos,int len)
1: import ;
2: import ;
3:
4: ...
5: }
6: HTMLEditorKit editorKit = new HTMLEditorKit();
7: try
8: ...
9: {
10: editorKit.write(outputStream, html, 0, html.getLength());
11: } catch (IOException e)
View Full Code Here