Package org.jdesktop.swingx
Class JXEditorPane
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JEditorPane
org.jdesktop.swingx.JXEditorPane
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
,Targetable
JXEditorPane
offers enhanced functionality over the standard
JEditorPane
. Unlike its parent, JXEdtiorPane
honors display properties
by default.
Users can revert to the behavior of JEditorPane
by setting the
property to false
.
Additional Features
- Improved text editing
- The standard text component commands for cut, copy, and paste used enhanced selection methods. The commands will only be active if there is text to cut or copy selected or valid text in the clipboard to paste.
- Improved HTML editing
-
Using the context-sensitive approach for the standard text commands,
JXEditorPane
provides HTML editing commands that alter functionality depending on the document state. Currently, the user can quick-format the document with headers (H# tags), paragraphs, and breaks. - Built-in UndoManager
-
Text components provide
UndoableEditEvent
s.JXEditorPane
places those events in anUndoManager
and provides undo/redo commands. Undo and redo are context-sensitive (like the text commands) and will only be active if it is possible to perform the command. - Built-in search
-
Using SwingX search mechanisms,
JXEditorPane
provides search capabilities, allowing the user to find text within the document.
Example
Creating a JXEditorPane
is no different than creating a
JEditorPane
. However, the following example demonstrates the best way to
access the improved command functionality.
JXEditorPane editorPane = new JXEditorPane("some URL"); add(editorPane); JToolBar toolBar = ActionContainerFactory.createToolBar(editorPane.getCommands[]); toolBar.addSeparator(); toolBar.add(editorPane.getParagraphSelector()); setToolBar(toolBar);
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
A small class which dispatches actions.private class
Listens to the caret placement and adjusts the editing properties as appropriate.class
ASearchable
implementation forDocument
s.private class
A control which should be placed in the toolbar to enable paragraph selection.private class
private static final class
Handles sloppy HTML.private class
Nested classes/interfaces inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.JEditorPaneAccessibleHypertextSupport
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private static final String
private static final String
private static final String
private static final String
private static final String
private CaretListener
private static final Logger
private Searchable
private JComboBox
private TargetableSupport
private UndoableEditListener
private UndoManager
Fields inherited from class javax.swing.JEditorPane
HONOR_DISPLAY_PROPERTIES, W3C_LENGTH_UNITS
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a newJXEditorPane
.JXEditorPane
(String url) Creates aJXEditorPane
based on a string containing a URL specification.JXEditorPane
(String type, String text) Creates aJXEditorPane
that has been initialized to the given text.JXEditorPane
(URL initialPage) Creates aJXEditorPane
based on a specified URL for input. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Applys the tag to the current selectionboolean
Perform the command using the object value.private void
find()
(package private) CaretListener
Object[]
Returns an array of supported commands.Retrieves a component which will be used as the paragraph selector.int
getScrollableUnitIncrement
(Rectangle visibleRect, int orientation, int direction) (package private) UndoableEditListener
boolean
hasCommand
(Object command) Return a flag that indicates if a command is supported.private void
init()
protected void
Register the actions that this class can handle.void
paste()
The paste method has been overloaded to strip off the tags This doesn't really work.void
setEditorKit
(EditorKit kit) Overidden to perform document initialization based on type.void
setSearchable
(Searchable searchable) sets the Searchable for this editor.private void
Updates the state of the actions in response to an undo/redo operation.Methods inherited from class javax.swing.JEditorPane
addHyperlinkListener, createDefaultEditorKit, createEditorKitForContentType, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getHyperlinkListeners, getPage, getPreferredSize, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getStream, getText, getUIClassID, paramString, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, replaceSelection, scrollToReference, setContentType, setEditorKitForContentType, setPage, setPage, setText
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, viewToModel2D, write
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
LOG
-
undoHandler
-
undoManager
-
caretHandler
-
selector
-
ACTION_FIND
- See Also:
-
ACTION_UNDO
- See Also:
-
ACTION_REDO
- See Also:
-
ACTION_CUT
- See Also:
-
ACTION_COPY
- See Also:
-
ACTION_PASTE
- See Also:
-
targetSupport
-
searchable
-
-
Constructor Details
-
JXEditorPane
public JXEditorPane()Creates a newJXEditorPane
. The document model is set tonull
. -
JXEditorPane
Creates aJXEditorPane
based on a string containing a URL specification.- Parameters:
url
- the URL- Throws:
IOException
- if the URL isnull
or cannot be accessed
-
JXEditorPane
Creates aJXEditorPane
that has been initialized to the given text. This is a convenience constructor that calls thesetContentType
andsetText
methods.- Parameters:
type
- mime type of the given texttext
- the text to initialize with; may benull
- Throws:
NullPointerException
- if thetype
parameter isnull
-
JXEditorPane
Creates aJXEditorPane
based on a specified URL for input.- Parameters:
initialPage
- the URL- Throws:
IOException
- if the URL isnull
or cannot be accessed
-
-
Method Details
-
init
private void init() -
getCaretListener
CaretListener getCaretListener() -
getUndoableEditListener
UndoableEditListener getUndoableEditListener() -
setEditorKit
Overidden to perform document initialization based on type.- Overrides:
setEditorKit
in classJEditorPane
-
initActions
protected void initActions()Register the actions that this class can handle. -
updateActionState
private void updateActionState()Updates the state of the actions in response to an undo/redo operation. -
getParagraphSelector
Retrieves a component which will be used as the paragraph selector. This can be placed in the toolbar.Note: This is only valid for the HTMLEditorKit
-
applyTag
Applys the tag to the current selection -
paste
public void paste()The paste method has been overloaded to strip off the tags This doesn't really work.- Overrides:
paste
in classJTextComponent
-
find
private void find() -
getSearchable
- Returns:
- a not-null Searchable for this editor.
-
setSearchable
sets the Searchable for this editor. If null, a default searchable will be used.- Parameters:
searchable
-
-
hasCommand
Description copied from interface:Targetable
Return a flag that indicates if a command is supported.- Specified by:
hasCommand
in interfaceTargetable
- Parameters:
command
- is a Action.ACTION_COMMAND_KEY- Returns:
- true if command is supported; false otherwise
-
getCommands
Description copied from interface:Targetable
Returns an array of supported commands. If this Targetable doesn't support any commands (which is unlikely) then an empty array is returned.- Specified by:
getCommands
in interfaceTargetable
- Returns:
- array of supported commands
-
doCommand
Description copied from interface:Targetable
Perform the command using the object value.- Specified by:
doCommand
in interfaceTargetable
- Parameters:
command
- is a Action.ACTION_COMMAND_KEYvalue
- an arbitrary value. Usually this will be EventObject which trigered the command.
-
getScrollableUnitIncrement
- Specified by:
getScrollableUnitIncrement
in interfaceScrollable
- Overrides:
getScrollableUnitIncrement
in classJTextComponent
-