HTMLEditorKit (Java Platform SE 8 ) (original) (raw)
- javax.swing.text.EditorKit
- javax.swing.text.DefaultEditorKit
- javax.swing.text.StyledEditorKit
* * javax.swing.text.html.HTMLEditorKit
- javax.swing.text.StyledEditorKit
- javax.swing.text.DefaultEditorKit
All Implemented Interfaces:
Serializable, Cloneable, Accessible
public class HTMLEditorKit
extends StyledEditorKit
implements Accessible
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 tag is not supported, but some support is provided for the 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.
Support editing
It might seem fairly obvious that a plug-in for JEditorPane should provide editing support, but that fact has several design considerations. There are a substantial number of HTML documents that don't properly conform to an HTML specification. These must be normalized somewhat into a correct form if one is to edit them. Additionally, users don't like to be presented with an excessive amount of structure editing, so using traditional text editing gestures is preferred over using the HTML structure exactly as defined in the HTML document.
The modeling of HTML is provided by the class HTMLDocument
. Its documentation describes the details of how the HTML is modeled. The editing support leverages heavily off of the text package.
Extendable/Scalable
To maximize the usefulness of this kit, a great deal of effort has gone into making it extendable. These are some of the features.
- The parser is replaceable. 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
Asynchronous Loading
Larger documents involve a lot of parsing and take some time to load. By default, this kit produces documents that will be loaded asynchronously if loaded usingJEditorPane.setPage
. This is controlled by a property on the document. The methodcreateDefaultDocument can be overriden to change this. The batching of work is done by theHTMLDocument.HTMLReader
class. The actual work is done by theDefaultStyledDocument
andAbstractDocument
classes in the text package.
Customization from current LAF
HTML provides a well known set of features without exactly specifying the display characteristics. Swing has a theme mechanism for its look-and-feel implementations. It is desirable for the look-and-feel to feed display characteristics into the HTML views. An user with poor vision for example would want high contrast and larger than typical fonts.
The support for this is provided by theStyleSheet
class. The presentation of the HTML can be heavily influenced by the setting of the StyleSheet property on the EditorKit.
Not lossy
An EditorKit has the ability to be read and save documents. It is generally the most pleasing to users if there is no loss of data between the two operation. The policy of the HTMLEditorKit will be to store things not recognized or not necessarily visible so they can be subsequently written out. The model of the HTML document should therefore contain all information discovered while reading the document. This is constrained in some ways by the need to support editing (i.e. incorrect documents sometimes must be normalized). The guiding principle is that information shouldn't be lost, but some might be synthesized to produce a more correct model or it might be rearranged.
Nested Class Summary
Nested Classes
Modifier and Type Class Description static class HTMLEditorKit.HTMLFactory A factory to build views for HTML. static class HTMLEditorKit.HTMLTextAction An abstract Action providing some convenience methods that may be useful in inserting HTML into an existing document. static class HTMLEditorKit.InsertHTMLTextAction InsertHTMLTextAction can be used to insert an arbitrary string of HTML into an existing HTML document. static class HTMLEditorKit.LinkController Class to watch the associated component and fire hyperlink events on it when appropriate. static class HTMLEditorKit.Parser Interface to be supported by the parser. static class HTMLEditorKit.ParserCallback The result of parsing drives these callback methods. * ### Nested classes/interfaces inherited from class javax.swing.text.[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text") `[StyledEditorKit.AlignmentAction](../../../../javax/swing/text/StyledEditorKit.AlignmentAction.html "class in javax.swing.text"), [StyledEditorKit.BoldAction](../../../../javax/swing/text/StyledEditorKit.BoldAction.html "class in javax.swing.text"), [StyledEditorKit.FontFamilyAction](../../../../javax/swing/text/StyledEditorKit.FontFamilyAction.html "class in javax.swing.text"), [StyledEditorKit.FontSizeAction](../../../../javax/swing/text/StyledEditorKit.FontSizeAction.html "class in javax.swing.text"), [StyledEditorKit.ForegroundAction](../../../../javax/swing/text/StyledEditorKit.ForegroundAction.html "class in javax.swing.text"), [StyledEditorKit.ItalicAction](../../../../javax/swing/text/StyledEditorKit.ItalicAction.html "class in javax.swing.text"), [StyledEditorKit.StyledTextAction](../../../../javax/swing/text/StyledEditorKit.StyledTextAction.html "class in javax.swing.text"), [StyledEditorKit.UnderlineAction](../../../../javax/swing/text/StyledEditorKit.UnderlineAction.html "class in javax.swing.text")` * ### Nested classes/interfaces inherited from class javax.swing.text.[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text") `[DefaultEditorKit.BeepAction](../../../../javax/swing/text/DefaultEditorKit.BeepAction.html "class in javax.swing.text"), [DefaultEditorKit.CopyAction](../../../../javax/swing/text/DefaultEditorKit.CopyAction.html "class in javax.swing.text"), [DefaultEditorKit.CutAction](../../../../javax/swing/text/DefaultEditorKit.CutAction.html "class in javax.swing.text"), [DefaultEditorKit.DefaultKeyTypedAction](../../../../javax/swing/text/DefaultEditorKit.DefaultKeyTypedAction.html "class in javax.swing.text"), [DefaultEditorKit.InsertBreakAction](../../../../javax/swing/text/DefaultEditorKit.InsertBreakAction.html "class in javax.swing.text"), [DefaultEditorKit.InsertContentAction](../../../../javax/swing/text/DefaultEditorKit.InsertContentAction.html "class in javax.swing.text"), [DefaultEditorKit.InsertTabAction](../../../../javax/swing/text/DefaultEditorKit.InsertTabAction.html "class in javax.swing.text"), [DefaultEditorKit.PasteAction](../../../../javax/swing/text/DefaultEditorKit.PasteAction.html "class in javax.swing.text")`
Field Summary
Fields
Modifier and Type Field Description static String BOLD_ACTION The bold action identifier static String COLOR_ACTION The Color choice action identifier The color is passed as an argument static String DEFAULT_CSS Default Cascading Style Sheet file that sets up the tag views. static String FONT_CHANGE_BIGGER The font size increase to next value action identifier static String FONT_CHANGE_SMALLER The font size decrease to next value action identifier static String IMG_ALIGN_BOTTOM Align images at the bottom. static String IMG_ALIGN_MIDDLE Align images in the middle. static String IMG_ALIGN_TOP Align images at the top. static String IMG_BORDER Align images at the border. static String ITALIC_ACTION The italic action identifier static String LOGICAL_STYLE_ACTION The logical style choice action identifier The logical style is passed in as an argument static String PARA_INDENT_LEFT The paragraph left indent action identifier static String PARA_INDENT_RIGHT The paragraph right indent action identifier * ### Fields inherited from class javax.swing.text.[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text") `[backwardAction](../../../../javax/swing/text/DefaultEditorKit.html#backwardAction), [beepAction](../../../../javax/swing/text/DefaultEditorKit.html#beepAction), [beginAction](../../../../javax/swing/text/DefaultEditorKit.html#beginAction), [beginLineAction](../../../../javax/swing/text/DefaultEditorKit.html#beginLineAction), [beginParagraphAction](../../../../javax/swing/text/DefaultEditorKit.html#beginParagraphAction), [beginWordAction](../../../../javax/swing/text/DefaultEditorKit.html#beginWordAction), [copyAction](../../../../javax/swing/text/DefaultEditorKit.html#copyAction), [cutAction](../../../../javax/swing/text/DefaultEditorKit.html#cutAction), [defaultKeyTypedAction](../../../../javax/swing/text/DefaultEditorKit.html#defaultKeyTypedAction), [deleteNextCharAction](../../../../javax/swing/text/DefaultEditorKit.html#deleteNextCharAction), [deleteNextWordAction](../../../../javax/swing/text/DefaultEditorKit.html#deleteNextWordAction), [deletePrevCharAction](../../../../javax/swing/text/DefaultEditorKit.html#deletePrevCharAction), [deletePrevWordAction](../../../../javax/swing/text/DefaultEditorKit.html#deletePrevWordAction), [downAction](../../../../javax/swing/text/DefaultEditorKit.html#downAction), [endAction](../../../../javax/swing/text/DefaultEditorKit.html#endAction), [endLineAction](../../../../javax/swing/text/DefaultEditorKit.html#endLineAction), [EndOfLineStringProperty](../../../../javax/swing/text/DefaultEditorKit.html#EndOfLineStringProperty), [endParagraphAction](../../../../javax/swing/text/DefaultEditorKit.html#endParagraphAction), [endWordAction](../../../../javax/swing/text/DefaultEditorKit.html#endWordAction), [forwardAction](../../../../javax/swing/text/DefaultEditorKit.html#forwardAction), [insertBreakAction](../../../../javax/swing/text/DefaultEditorKit.html#insertBreakAction), [insertContentAction](../../../../javax/swing/text/DefaultEditorKit.html#insertContentAction), [insertTabAction](../../../../javax/swing/text/DefaultEditorKit.html#insertTabAction), [nextWordAction](../../../../javax/swing/text/DefaultEditorKit.html#nextWordAction), [pageDownAction](../../../../javax/swing/text/DefaultEditorKit.html#pageDownAction), [pageUpAction](../../../../javax/swing/text/DefaultEditorKit.html#pageUpAction), [pasteAction](../../../../javax/swing/text/DefaultEditorKit.html#pasteAction), [previousWordAction](../../../../javax/swing/text/DefaultEditorKit.html#previousWordAction), [readOnlyAction](../../../../javax/swing/text/DefaultEditorKit.html#readOnlyAction), [selectAllAction](../../../../javax/swing/text/DefaultEditorKit.html#selectAllAction), [selectionBackwardAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionBackwardAction), [selectionBeginAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionBeginAction), [selectionBeginLineAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionBeginLineAction), [selectionBeginParagraphAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionBeginParagraphAction), [selectionBeginWordAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionBeginWordAction), [selectionDownAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionDownAction), [selectionEndAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionEndAction), [selectionEndLineAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionEndLineAction), [selectionEndParagraphAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionEndParagraphAction), [selectionEndWordAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionEndWordAction), [selectionForwardAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionForwardAction), [selectionNextWordAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionNextWordAction), [selectionPreviousWordAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionPreviousWordAction), [selectionUpAction](../../../../javax/swing/text/DefaultEditorKit.html#selectionUpAction), [selectLineAction](../../../../javax/swing/text/DefaultEditorKit.html#selectLineAction), [selectParagraphAction](../../../../javax/swing/text/DefaultEditorKit.html#selectParagraphAction), [selectWordAction](../../../../javax/swing/text/DefaultEditorKit.html#selectWordAction), [upAction](../../../../javax/swing/text/DefaultEditorKit.html#upAction), [writableAction](../../../../javax/swing/text/DefaultEditorKit.html#writableAction)`
Constructor Summary
Constructors
Constructor Description HTMLEditorKit() Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet. Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type Method Description Object clone() Creates a copy of the editor kit. Document createDefaultDocument() Create an uninitialized text storage model that is appropriate for this type of editor. protected void createInputAttributes(Element element,MutableAttributeSet set) Copies the key/values in elements AttributeSet intoset. void deinstall(JEditorPane c) Called when the kit is being removed from the JEditorPane. AccessibleContext getAccessibleContext() returns the AccessibleContext associated with this editor kit Action[] getActions() Fetches the command list for the editor. String getContentType() Get the MIME type of the data that this kit represents support for. Cursor getDefaultCursor() Returns the default cursor. MutableAttributeSet getInputAttributes() Gets the input attributes used for the styled editing actions. Cursor getLinkCursor() Returns the cursor to use over hyper links. protected HTMLEditorKit.Parser getParser() Fetch the parser to use for reading HTML streams. StyleSheet getStyleSheet() Get the set of styles currently being used to render the HTML elements. ViewFactory getViewFactory() Fetch a factory that is suitable for producing views of any models that are produced by this kit. void insertHTML(HTMLDocument doc, int offset,String html, int popDepth, int pushDepth,HTML.Tag insertTag) Inserts HTML into an existing document. void install(JEditorPane c) Called when the kit is being installed into the a JEditorPane. boolean isAutoFormSubmission() Indicates whether an html form submission is processed automatically or only FormSubmitEvent is fired. void read(Reader in,Document doc, int pos) Inserts content from the given stream. void setAutoFormSubmission(boolean isAuto) Specifies if an html form submission is processed automatically or only FormSubmitEvent is fired. void setDefaultCursor(Cursor cursor) Sets the default cursor. void setLinkCursor(Cursor cursor) Sets the cursor to use over links. void setStyleSheet(StyleSheet s) Set the set of styles to be used to render the various HTML elements. void write(Writer out,Document doc, int pos, int len) Write content from a document to the given stream in a format appropriate for this kind of content handler. * ### Methods inherited from class javax.swing.text.[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text") `[getCharacterAttributeRun](../../../../javax/swing/text/StyledEditorKit.html#getCharacterAttributeRun--)` * ### Methods inherited from class javax.swing.text.[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text") `[createCaret](../../../../javax/swing/text/DefaultEditorKit.html#createCaret--), [read](../../../../javax/swing/text/DefaultEditorKit.html#read-java.io.InputStream-javax.swing.text.Document-int-), [write](../../../../javax/swing/text/DefaultEditorKit.html#write-java.io.OutputStream-javax.swing.text.Document-int-int-)` * ### Methods inherited from class java.lang.[Object](../../../../java/lang/Object.html "class in java.lang") `[equals](../../../../java/lang/Object.html#equals-java.lang.Object-), [finalize](../../../../java/lang/Object.html#finalize--), [getClass](../../../../java/lang/Object.html#getClass--), [hashCode](../../../../java/lang/Object.html#hashCode--), [notify](../../../../java/lang/Object.html#notify--), [notifyAll](../../../../java/lang/Object.html#notifyAll--), [toString](../../../../java/lang/Object.html#toString--), [wait](../../../../java/lang/Object.html#wait--), [wait](../../../../java/lang/Object.html#wait-long-), [wait](../../../../java/lang/Object.html#wait-long-int-)`
Field Detail
* #### DEFAULT\_CSS public static final [String](../../../../java/lang/String.html "class in java.lang") DEFAULT_CSS Default Cascading Style Sheet file that sets up the tag views. See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.DEFAULT%5FCSS) * #### BOLD\_ACTION public static final [String](../../../../java/lang/String.html "class in java.lang") BOLD_ACTION The bold action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.BOLD%5FACTION) * #### ITALIC\_ACTION public static final [String](../../../../java/lang/String.html "class in java.lang") ITALIC_ACTION The italic action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.ITALIC%5FACTION) * #### PARA\_INDENT\_LEFT public static final [String](../../../../java/lang/String.html "class in java.lang") PARA_INDENT_LEFT The paragraph left indent action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.PARA%5FINDENT%5FLEFT) * #### PARA\_INDENT\_RIGHT public static final [String](../../../../java/lang/String.html "class in java.lang") PARA_INDENT_RIGHT The paragraph right indent action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.PARA%5FINDENT%5FRIGHT) * #### FONT\_CHANGE\_BIGGER public static final [String](../../../../java/lang/String.html "class in java.lang") FONT_CHANGE_BIGGER The font size increase to next value action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.FONT%5FCHANGE%5FBIGGER) * #### FONT\_CHANGE\_SMALLER public static final [String](../../../../java/lang/String.html "class in java.lang") FONT_CHANGE_SMALLER The font size decrease to next value action identifier See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.FONT%5FCHANGE%5FSMALLER) * #### COLOR\_ACTION public static final [String](../../../../java/lang/String.html "class in java.lang") COLOR_ACTION The Color choice action identifier The color is passed as an argument See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.COLOR%5FACTION) * #### LOGICAL\_STYLE\_ACTION public static final [String](../../../../java/lang/String.html "class in java.lang") LOGICAL_STYLE_ACTION The logical style choice action identifier The logical style is passed in as an argument See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.LOGICAL%5FSTYLE%5FACTION) * #### IMG\_ALIGN\_TOP public static final [String](../../../../java/lang/String.html "class in java.lang") IMG_ALIGN_TOP Align images at the top. See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.IMG%5FALIGN%5FTOP) * #### IMG\_ALIGN\_MIDDLE public static final [String](../../../../java/lang/String.html "class in java.lang") IMG_ALIGN_MIDDLE Align images in the middle. See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.IMG%5FALIGN%5FMIDDLE) * #### IMG\_ALIGN\_BOTTOM public static final [String](../../../../java/lang/String.html "class in java.lang") IMG_ALIGN_BOTTOM Align images at the bottom. See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.IMG%5FALIGN%5FBOTTOM) * #### IMG\_BORDER public static final [String](../../../../java/lang/String.html "class in java.lang") IMG_BORDER Align images at the border. See Also: [Constant Field Values](../../../../constant-values.html#javax.swing.text.html.HTMLEditorKit.IMG%5FBORDER)
Constructor Detail
* #### HTMLEditorKit public HTMLEditorKit() Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.
Method Detail
* #### getContentType public [String](../../../../java/lang/String.html "class in java.lang") getContentType() Get the MIME type of the data that this kit represents support for. This kit supports the type `text/html`. Overrides: `[getContentType](../../../../javax/swing/text/DefaultEditorKit.html#getContentType--)` in class `[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text")` Returns: the type * #### getViewFactory public [ViewFactory](../../../../javax/swing/text/ViewFactory.html "interface in javax.swing.text") getViewFactory() Fetch a factory that is suitable for producing views of any models that are produced by this kit. Overrides: `[getViewFactory](../../../../javax/swing/text/StyledEditorKit.html#getViewFactory--)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Returns: the factory * #### createDefaultDocument public [Document](../../../../javax/swing/text/Document.html "interface in javax.swing.text") createDefaultDocument() Create an uninitialized text storage model that is appropriate for this type of editor. Overrides: `[createDefaultDocument](../../../../javax/swing/text/StyledEditorKit.html#createDefaultDocument--)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Returns: the model * #### read public void read([Reader](../../../../java/io/Reader.html "class in java.io") in, [Document](../../../../javax/swing/text/Document.html "interface in javax.swing.text") doc, int pos) throws [IOException](../../../../java/io/IOException.html "class in java.io"), [BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text") 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. Overrides: `[read](../../../../javax/swing/text/DefaultEditorKit.html#read-java.io.Reader-javax.swing.text.Document-int-)` in class `[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text")` Parameters: `in` \- the stream to read from `doc` \- the destination for the insertion `pos` \- the location in the document to place the content Throws: `[IOException](../../../../java/io/IOException.html "class in java.io")` \- on any I/O error `[BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text")` \- if pos represents an invalid location within the document `[RuntimeException](../../../../java/lang/RuntimeException.html "class in java.lang")` \- (will eventually be a BadLocationException) if pos is invalid * #### insertHTML public void insertHTML([HTMLDocument](../../../../javax/swing/text/html/HTMLDocument.html "class in javax.swing.text.html") doc, int offset, [String](../../../../java/lang/String.html "class in java.lang") html, int popDepth, int pushDepth, [HTML.Tag](../../../../javax/swing/text/html/HTML.Tag.html "class in javax.swing.text.html") insertTag) throws [BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text"), [IOException](../../../../java/io/IOException.html "class in java.io") Inserts HTML into an existing document. Parameters: `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 Throws: `[RuntimeException](../../../../java/lang/RuntimeException.html "class in java.lang")` \- (will eventually be a BadLocationException) if pos is invalid `[BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text")` `[IOException](../../../../java/io/IOException.html "class in java.io")` * #### write public void write([Writer](../../../../java/io/Writer.html "class in java.io") out, [Document](../../../../javax/swing/text/Document.html "interface in javax.swing.text") doc, int pos, int len) throws [IOException](../../../../java/io/IOException.html "class in java.io"), [BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text") Write content from a document to the given stream in a format appropriate for this kind of content handler. Overrides: `[write](../../../../javax/swing/text/DefaultEditorKit.html#write-java.io.Writer-javax.swing.text.Document-int-int-)` in class `[DefaultEditorKit](../../../../javax/swing/text/DefaultEditorKit.html "class in javax.swing.text")` Parameters: `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 Throws: `[IOException](../../../../java/io/IOException.html "class in java.io")` \- on any I/O error `[BadLocationException](../../../../javax/swing/text/BadLocationException.html "class in javax.swing.text")` \- if pos represents an invalid location within the document * #### install public void install([JEditorPane](../../../../javax/swing/JEditorPane.html "class in javax.swing") c) Called when the kit is being installed into the a JEditorPane. Overrides: `[install](../../../../javax/swing/text/StyledEditorKit.html#install-javax.swing.JEditorPane-)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Parameters: `c` \- the JEditorPane * #### deinstall public void deinstall([JEditorPane](../../../../javax/swing/JEditorPane.html "class in javax.swing") c) Called when the kit is being removed from the JEditorPane. This is used to unregister any listeners that were attached. Overrides: `[deinstall](../../../../javax/swing/text/StyledEditorKit.html#deinstall-javax.swing.JEditorPane-)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Parameters: `c` \- the JEditorPane * #### setStyleSheet public void setStyleSheet([StyleSheet](../../../../javax/swing/text/html/StyleSheet.html "class in javax.swing.text.html") 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. * #### getStyleSheet public [StyleSheet](../../../../javax/swing/text/html/StyleSheet.html "class in javax.swing.text.html") 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. * #### getActions public [Action](../../../../javax/swing/Action.html "interface in javax.swing")[] 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. Overrides: `[getActions](../../../../javax/swing/text/StyledEditorKit.html#getActions--)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Returns: the command list * #### createInputAttributes protected void createInputAttributes([Element](../../../../javax/swing/text/Element.html "interface in javax.swing.text") element, [MutableAttributeSet](../../../../javax/swing/text/MutableAttributeSet.html "interface in javax.swing.text") set) 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. Overrides: `[createInputAttributes](../../../../javax/swing/text/StyledEditorKit.html#createInputAttributes-javax.swing.text.Element-javax.swing.text.MutableAttributeSet-)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` * #### getInputAttributes public [MutableAttributeSet](../../../../javax/swing/text/MutableAttributeSet.html "interface in javax.swing.text") getInputAttributes() Gets the input attributes used for the styled editing actions. Overrides: `[getInputAttributes](../../../../javax/swing/text/StyledEditorKit.html#getInputAttributes--)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Returns: the attribute set * #### setDefaultCursor public void setDefaultCursor([Cursor](../../../../java/awt/Cursor.html "class in java.awt") cursor) Sets the default cursor. Since: 1.3 * #### getDefaultCursor public [Cursor](../../../../java/awt/Cursor.html "class in java.awt") getDefaultCursor() Returns the default cursor. Since: 1.3 * #### setLinkCursor public void setLinkCursor([Cursor](../../../../java/awt/Cursor.html "class in java.awt") cursor) Sets the cursor to use over links. Since: 1.3 * #### getLinkCursor public [Cursor](../../../../java/awt/Cursor.html "class in java.awt") getLinkCursor() Returns the cursor to use over hyper links. Since: 1.3 * #### isAutoFormSubmission public boolean isAutoFormSubmission() Indicates whether an html form submission is processed automatically or only `FormSubmitEvent` is fired. Returns: true if html form submission is processed automatically, false otherwise. Since: 1.5 See Also: [setAutoFormSubmission(boolean)](../../../../javax/swing/text/html/HTMLEditorKit.html#setAutoFormSubmission-boolean-) * #### 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. Since: 1.5 See Also: [isAutoFormSubmission()](../../../../javax/swing/text/html/HTMLEditorKit.html#isAutoFormSubmission--), [FormSubmitEvent](../../../../javax/swing/text/html/FormSubmitEvent.html "class in javax.swing.text.html") * #### clone public [Object](../../../../java/lang/Object.html "class in java.lang") clone() Creates a copy of the editor kit. Overrides: `[clone](../../../../javax/swing/text/StyledEditorKit.html#clone--)` in class `[StyledEditorKit](../../../../javax/swing/text/StyledEditorKit.html "class in javax.swing.text")` Returns: the copy See Also: [Cloneable](../../../../java/lang/Cloneable.html "interface in java.lang") * #### getParser protected [HTMLEditorKit.Parser](../../../../javax/swing/text/html/HTMLEditorKit.Parser.html "class in javax.swing.text.html") 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. * #### getAccessibleContext public [AccessibleContext](../../../../javax/accessibility/AccessibleContext.html "class in javax.accessibility") getAccessibleContext() returns the AccessibleContext associated with this editor kit Specified by: `[getAccessibleContext](../../../../javax/accessibility/Accessible.html#getAccessibleContext--)` in interface `[Accessible](../../../../javax/accessibility/Accessible.html "interface in javax.accessibility")` Returns: the AccessibleContext associated with this editor kit Since: 1.4
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.