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:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.Scrollable
,Targetable
@JavaBean public class JXEditorPane extends javax.swing.JEditorPane implements Targetable
JXEditorPane
offers enhanced functionality over the standardJEditorPane
. Unlike its parent,JXEdtiorPane
honors display properties
by default. Users can revert to the behavior ofJEditorPane
by setting the property tofalse
.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 aJEditorPane
. 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:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
JXEditorPane.Actions
A small class which dispatches actions.private class
JXEditorPane.CaretHandler
Listens to the caret placement and adjusts the editing properties as appropriate.class
JXEditorPane.DocumentSearchable
ASearchable
implementation forDocument
s.private class
JXEditorPane.ParagraphSelector
A control which should be placed in the toolbar to enable paragraph selection.private class
JXEditorPane.PropertyHandler
private static class
JXEditorPane.SloppyHTMLEditorKit
Handles sloppy HTML.private class
JXEditorPane.UndoHandler
-
Nested classes/interfaces inherited from class javax.swing.JEditorPane
javax.swing.JEditorPane.AccessibleJEditorPane, javax.swing.JEditorPane.AccessibleJEditorPaneHTML, javax.swing.JEditorPane.JEditorPaneAccessibleHypertextSupport
-
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ACTION_COPY
private static java.lang.String
ACTION_CUT
private static java.lang.String
ACTION_FIND
private static java.lang.String
ACTION_PASTE
private static java.lang.String
ACTION_REDO
private static java.lang.String
ACTION_UNDO
private javax.swing.event.CaretListener
caretHandler
private static java.util.logging.Logger
LOG
private Searchable
searchable
private javax.swing.JComboBox
selector
private TargetableSupport
targetSupport
private javax.swing.event.UndoableEditListener
undoHandler
private javax.swing.undo.UndoManager
undoManager
-
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
-
-
Constructor Summary
Constructors Constructor Description JXEditorPane()
Creates a newJXEditorPane
.JXEditorPane(java.lang.String url)
Creates aJXEditorPane
based on a string containing a URL specification.JXEditorPane(java.lang.String type, java.lang.String text)
Creates aJXEditorPane
that has been initialized to the given text.JXEditorPane(java.net.URL initialPage)
Creates aJXEditorPane
based on a specified URL for input.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
applyTag(javax.swing.text.html.HTML.Tag tag)
Applys the tag to the current selectionboolean
doCommand(java.lang.Object command, java.lang.Object value)
Perform the command using the object value.private void
find()
(package private) javax.swing.event.CaretListener
getCaretListener()
java.lang.Object[]
getCommands()
Returns an array of supported commands.javax.swing.JComboBox
getParagraphSelector()
Retrieves a component which will be used as the paragraph selector.int
getScrollableUnitIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
Searchable
getSearchable()
(package private) javax.swing.event.UndoableEditListener
getUndoableEditListener()
boolean
hasCommand(java.lang.Object command)
Return a flag that indicates if a command is supported.private void
init()
protected void
initActions()
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(javax.swing.text.EditorKit kit)
Overidden to perform document initialization based on type.void
setSearchable(Searchable searchable)
sets the Searchable for this editor.private void
updateActionState()
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 Detail
-
LOG
private static final java.util.logging.Logger LOG
-
undoHandler
private javax.swing.event.UndoableEditListener undoHandler
-
undoManager
private javax.swing.undo.UndoManager undoManager
-
caretHandler
private javax.swing.event.CaretListener caretHandler
-
selector
private javax.swing.JComboBox selector
-
ACTION_FIND
private static final java.lang.String ACTION_FIND
- See Also:
- Constant Field Values
-
ACTION_UNDO
private static final java.lang.String ACTION_UNDO
- See Also:
- Constant Field Values
-
ACTION_REDO
private static final java.lang.String ACTION_REDO
- See Also:
- Constant Field Values
-
ACTION_CUT
private static final java.lang.String ACTION_CUT
- See Also:
- Constant Field Values
-
ACTION_COPY
private static final java.lang.String ACTION_COPY
- See Also:
- Constant Field Values
-
ACTION_PASTE
private static final java.lang.String ACTION_PASTE
- See Also:
- Constant Field Values
-
targetSupport
private TargetableSupport targetSupport
-
searchable
private Searchable searchable
-
-
Constructor Detail
-
JXEditorPane
public JXEditorPane()
Creates a newJXEditorPane
. The document model is set tonull
.
-
JXEditorPane
public JXEditorPane(java.lang.String url) throws java.io.IOException
Creates aJXEditorPane
based on a string containing a URL specification.- Parameters:
url
- the URL- Throws:
java.io.IOException
- if the URL isnull
or cannot be accessed
-
JXEditorPane
public JXEditorPane(java.lang.String type, java.lang.String text)
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:
java.lang.NullPointerException
- if thetype
parameter isnull
-
JXEditorPane
public JXEditorPane(java.net.URL initialPage) throws java.io.IOException
Creates aJXEditorPane
based on a specified URL for input.- Parameters:
initialPage
- the URL- Throws:
java.io.IOException
- if the URL isnull
or cannot be accessed
-
-
Method Detail
-
init
private void init()
-
getCaretListener
javax.swing.event.CaretListener getCaretListener()
-
getUndoableEditListener
javax.swing.event.UndoableEditListener getUndoableEditListener()
-
setEditorKit
public void setEditorKit(javax.swing.text.EditorKit kit)
Overidden to perform document initialization based on type.- Overrides:
setEditorKit
in classjavax.swing.JEditorPane
-
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
public javax.swing.JComboBox 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
protected void applyTag(javax.swing.text.html.HTML.Tag tag)
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 classjavax.swing.text.JTextComponent
-
find
private void find()
-
getSearchable
public Searchable getSearchable()
- Returns:
- a not-null Searchable for this editor.
-
setSearchable
public void setSearchable(Searchable searchable)
sets the Searchable for this editor. If null, a default searchable will be used.- Parameters:
searchable
-
-
hasCommand
public boolean hasCommand(java.lang.Object command)
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
public java.lang.Object[] 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
public boolean doCommand(java.lang.Object command, java.lang.Object value)
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
public int getScrollableUnitIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
- Specified by:
getScrollableUnitIncrement
in interfacejavax.swing.Scrollable
- Overrides:
getScrollableUnitIncrement
in classjavax.swing.text.JTextComponent
-
-