public abstract class RTextAreaBase extends JTextArea
RTextArea
; basically it's just an
extension of javax.swing.JTextArea
adding a bunch of properties.
This class is only supposed to be overridden by RTextArea
.
Modifier and Type | Class and Description |
---|---|
protected class |
RTextAreaBase.RTAMouseListener |
JTextArea.AccessibleJTextArea
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static String |
BACKGROUND_IMAGE_PROPERTY |
static String |
CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY |
static String |
CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY |
static String |
HIGHLIGHT_CURRENT_LINE_PROPERTY |
static String |
ROUNDED_SELECTION_PROPERTY |
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
RTextAreaBase()
Constructor.
|
RTextAreaBase(AbstractDocument doc)
Constructor.
|
RTextAreaBase(AbstractDocument doc,
String text,
int rows,
int cols)
Constructor.
|
RTextAreaBase(int rows,
int cols)
Constructor.
|
RTextAreaBase(String text)
Constructor.
|
RTextAreaBase(String text,
int rows,
int cols)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addNotify() |
void |
convertSpacesToTabs()
Converts all instances of a number of spaces equal to a tab size
into a tab in this text area.
|
void |
convertTabsToSpaces()
Converts all instances of a tab into a number of spaces equivalent
to a tab in this text area.
|
protected abstract RTextAreaBase.RTAMouseListener |
createMouseListener()
Returns the caret event/mouse listener for
RTextArea s. |
protected abstract RTextAreaUI |
createRTextAreaUI()
Returns the a real UI to install on this text component.
|
protected void |
forceCurrentLineHighlightRepaint()
Forces the current line highlight to be repainted.
|
Color |
getBackground()
Returns the
java.awt.Color used as the background color for
this text area. |
Image |
getBackgroundImage()
Returns the image currently used for the background.
|
Object |
getBackgroundObject()
Returns the
Object representing the background for all
documents in this tabbed pane; either a java.awt.Color or a
java.lang.Image containing the image used as the background
for this text area. |
int |
getCaretLineNumber()
Gets the line number that the caret is on.
|
int |
getCaretOffsetFromLineStart()
Gets the position from the beginning of the current line that the caret
is on.
|
protected int |
getCurrentCaretY()
Returns the y-offset of the caret.
|
Color |
getCurrentLineHighlightColor()
Returns the color being used to highlight the current line.
|
static Color |
getDefaultCaretColor()
Returns the default caret color.
|
static Color |
getDefaultCurrentLineHighlightColor()
Returns the "default" color for highlighting the current line.
|
static Font |
getDefaultFont()
Returns the default font for text areas.
|
static Color |
getDefaultForeground()
Returns the default foreground color for text in this text area.
|
static Color |
getDefaultMarginLineColor()
Returns the default color for the margin line.
|
static int |
getDefaultMarginLinePosition()
Returns the default margin line position.
|
static int |
getDefaultTabSize()
Returns the default tab size, in spaces.
|
boolean |
getFadeCurrentLineHighlight()
Returns whether the current line highlight is faded.
|
boolean |
getHighlightCurrentLine()
Returns whether or not the current line is highlighted.
|
int |
getLineEndOffsetOfCurrentLine()
Returns the offset of the last character of the line that the caret is
on.
|
int |
getLineHeight()
Returns the height of a line of text in this text area.
|
int |
getLineStartOffsetOfCurrentLine()
Returns the offset of the first character of the line that the caret is
on.
|
Color |
getMarginLineColor()
Returns the color used to paint the margin line.
|
int |
getMarginLinePixelLocation()
Returns the margin line position (in pixels) from the left-hand side of
the text area.
|
int |
getMarginLinePosition()
Returns the margin line position (which is the number of 'm' widths in
the current font the margin line is over).
|
boolean |
getRoundedSelectionEdges()
Returns whether selection edges are rounded in this text area.
|
boolean |
getTabsEmulated()
Returns whether or not tabs are emulated with spaces (i.e., "soft"
tabs).
|
protected void |
init()
Initializes this text area.
|
boolean |
isMarginLineEnabled()
Returns whether or not the margin line is being painted.
|
static boolean |
isOSX()
Returns whether the OS we're running on is OS X.
|
protected void |
paintComponent(Graphics g)
Paints the text area.
|
protected void |
possiblyUpdateCurrentLineHighlightLocation()
Updates the current line highlight location.
|
protected void |
processComponentEvent(ComponentEvent e)
Overridden so we can tell when the text area is resized and update the
current-line highlight, if necessary (i.e., if it is enabled and if
lineWrap is enabled.
|
void |
setBackground(Color bg)
Sets the background color of this text editor.
|
void |
setBackgroundImage(Image image)
Sets this image as the background image.
|
void |
setBackgroundObject(Object newBackground)
Makes the background into this
Object . |
void |
setCurrentLineHighlightColor(Color color)
Sets the color to use to highlight the current line.
|
void |
setFadeCurrentLineHighlight(boolean fade)
Sets whether the current line highlight should have a "fade" effect.
|
void |
setFont(Font font)
Sets the font for this text area.
|
void |
setHighlightCurrentLine(boolean highlight)
Sets whether or not the current line is highlighted.
|
void |
setLineWrap(boolean wrap)
Sets whether or not word wrap is enabled.
|
void |
setMargin(Insets insets)
Overridden to update the current line highlight location.
|
void |
setMarginLineColor(Color color)
Sets the color used to paint the margin line.
|
void |
setMarginLineEnabled(boolean enabled)
Enables or disables the margin line.
|
void |
setMarginLinePosition(int size)
Sets the number of 'm' widths the margin line is over.
|
void |
setRoundedSelectionEdges(boolean rounded)
Sets whether the edges of selections are rounded in this text area.
|
protected void |
setRTextAreaUI(RTextAreaUI ui)
Sets the UI for this
RTextArea . |
void |
setTabsEmulated(boolean areEmulated)
Changes whether or not tabs should be emulated with spaces (i.e., soft
tabs).
|
void |
setTabSize(int size)
Workaround, since in JDK1.4 it appears that
setTabSize()
doesn't work for a JTextArea unless you use the constructor
specifying the number of rows and columns... |
protected void |
updateMarginLineX()
This is here so subclasses such as
RSyntaxTextArea that
have multiple fonts can define exactly what it means, for example, for
the margin line to be "80 characters" over. |
int |
yForLine(int line)
Returns the y-coordinate of the specified line.
|
int |
yForLineContaining(int offs)
Returns the y-coordinate of the line containing an offset.
|
append, createDefaultModel, getAccessibleContext, getColumns, getColumnWidth, getLineCount, getLineEndOffset, getLineOfOffset, getLineStartOffset, getLineWrap, getPreferredScrollableViewportSize, getPreferredSize, getRowHeight, getRows, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getTabSize, getUIClassID, getWrapStyleWord, insert, paramString, replaceRange, setColumns, setRows, setWrapStyleWord
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, write
addAncestorListener, 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, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
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
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, 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, getPeer, 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, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final String BACKGROUND_IMAGE_PROPERTY
public static final String CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY
public static final String CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY
public static final String HIGHLIGHT_CURRENT_LINE_PROPERTY
public static final String ROUNDED_SELECTION_PROPERTY
public RTextAreaBase()
public RTextAreaBase(AbstractDocument doc)
doc
- The document for the editor.public RTextAreaBase(String text)
text
- The initial text to display.public RTextAreaBase(int rows, int cols)
rows
- The number of rows to display.cols
- The number of columns to display.IllegalArgumentException
- If either rows
or
cols
is negative.public RTextAreaBase(String text, int rows, int cols)
text
- The initial text to display.rows
- The number of rows to display.cols
- The number of columns to display.IllegalArgumentException
- If either rows
or
cols
is negative.public RTextAreaBase(AbstractDocument doc, String text, int rows, int cols)
doc
- The document for the editor.text
- The initial text to display.rows
- The number of rows to display.cols
- The number of columns to display.IllegalArgumentException
- If either rows
or
cols
is negative.public void addNotify()
addNotify
in class JComponent
public void convertSpacesToTabs()
public void convertTabsToSpaces()
protected abstract RTextAreaBase.RTAMouseListener createMouseListener()
RTextArea
s.protected abstract RTextAreaUI createRTextAreaUI()
RTextAreaUI
.protected void forceCurrentLineHighlightRepaint()
RSyntaxTextArea
.public final Color getBackground()
java.awt.Color
used as the background color for
this text area. If a java.awt.Image
image is currently
being used instead, null
is returned.getBackground
in class Component
null
if an image
is currently the background.public final Image getBackgroundImage()
java.awt.Color
and
not a java.awt.Image
, then null
is returned.java.awt.Image
used for the background, or
null
if the background is not an image.setBackgroundImage(java.awt.Image)
public final Object getBackgroundObject()
Object
representing the background for all
documents in this tabbed pane; either a java.awt.Color
or a
java.lang.Image
containing the image used as the background
for this text area.Object
used for the background.setBackgroundObject(Object newBackground)
public final int getCaretLineNumber()
public final int getCaretOffsetFromLineStart()
protected int getCurrentCaretY()
public Color getCurrentLineHighlightColor()
getHighlightCurrentLine()
,
setHighlightCurrentLine(boolean)
,
setCurrentLineHighlightColor(java.awt.Color)
public static final Color getDefaultCaretColor()
public static final Color getDefaultCurrentLineHighlightColor()
public static final Font getDefaultFont()
public static final Color getDefaultForeground()
public static final Color getDefaultMarginLineColor()
getMarginLineColor()
,
setMarginLineColor(Color)
public static final int getDefaultMarginLinePosition()
getMarginLinePosition()
,
setMarginLinePosition(int)
public static final int getDefaultTabSize()
public boolean getFadeCurrentLineHighlight()
setFadeCurrentLineHighlight(boolean)
public boolean getHighlightCurrentLine()
setHighlightCurrentLine(boolean)
,
getCurrentLineHighlightColor()
,
setCurrentLineHighlightColor(java.awt.Color)
public final int getLineEndOffsetOfCurrentLine()
public int getLineHeight()
public final int getLineStartOffsetOfCurrentLine()
public Color getMarginLineColor()
setMarginLineColor(Color)
public int getMarginLinePixelLocation()
getDefaultMarginLinePosition()
,
setMarginLinePosition(int)
public int getMarginLinePosition()
getDefaultMarginLinePosition()
,
setMarginLinePosition(int)
public boolean getRoundedSelectionEdges()
setRoundedSelectionEdges(boolean)
public boolean getTabsEmulated()
true
if tabs are emulated with spaces;
false
if they aren't.setTabsEmulated(boolean)
protected void init()
public boolean isMarginLineEnabled()
setMarginLineEnabled(boolean)
public static boolean isOSX()
protected void paintComponent(Graphics g)
paintComponent
in class JComponent
g
- The graphics context with which to paint.protected void possiblyUpdateCurrentLineHighlightLocation()
protected void processComponentEvent(ComponentEvent e)
processComponentEvent
in class Component
e
- The component event about to be sent to all registered
ComponentListener
s.public void setBackground(Color bg)
setBackgroundObject(bg)
.
NOTE: the opaque property is set to true
when the
background is set to a color (by this method). When an image is used
for the background, opaque is set to false. This is because
we perform better when setOpaque is true, but if we use an
image for the background when opaque is true, we get on-screen
garbage when the user scrolls via the arrow keys. Thus we
need setOpaque to be false in that case.
You never have to change the opaque property yourself; it is always done for you.
setBackground
in class JComponent
bg
- The color to use as the background color.public void setBackgroundImage(Image image)
BACKGROUND_IMAGE_PROPERTY
.
NOTE: the opaque property is set to true
when the
background is set to a color. When an image is used for the
background (by this method), opaque is set to false. This is because
we perform better when setOpaque is true, but if we use an
image for the background when opaque is true, we get on-screen
garbage when the user scrolls via the arrow keys. Thus we
need setOpaque to be false in that case.
You never have to change the opaque property yourself; it is always done for you.
image
- The image to use as this text area's background.getBackgroundImage()
public void setBackgroundObject(Object newBackground)
Object
.newBackground
- The java.awt.Color
or
java.awt.Image
object. If newBackground
is not either of these, the background is set to plain white.public void setCurrentLineHighlightColor(Color color)
CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY
.color
- The color to use to highlight the current line.NullPointerException
- if color
is null
.getHighlightCurrentLine()
,
setHighlightCurrentLine(boolean)
,
getCurrentLineHighlightColor()
public void setFadeCurrentLineHighlight(boolean fade)
CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY
.fade
- Whether the fade effect should be enabled.getFadeCurrentLineHighlight()
public void setFont(Font font)
public void setHighlightCurrentLine(boolean highlight)
HIGHLIGHT_CURRENT_LINE_PROPERTY
.highlight
- Whether or not to highlight the current line.getHighlightCurrentLine()
,
getCurrentLineHighlightColor()
,
setCurrentLineHighlightColor(java.awt.Color)
public void setLineWrap(boolean wrap)
setLineWrap
in class JTextArea
wrap
- Whether or not word wrap should be enabled.public void setMargin(Insets insets)
setMargin
in class JTextComponent
insets
- The new insets.public void setMarginLineColor(Color color)
color
- The new margin line color.getDefaultMarginLineColor()
,
getMarginLineColor()
public void setMarginLineEnabled(boolean enabled)
enabled
- Whether or not the margin line should be enabled.isMarginLineEnabled()
public void setMarginLinePosition(int size)
size
- The margin size.
#see #getDefaultMarginLinePositiongetMarginLinePosition()
public void setRoundedSelectionEdges(boolean rounded)
ROUNDED_SELECTION_PROPERTY
.rounded
- Whether selection edges should be rounded.getRoundedSelectionEdges()
protected void setRTextAreaUI(RTextAreaUI ui)
RTextArea
. Note that, for instances
of RTextArea
, setUI
only updates the popup
menu; this is because RTextArea
s' look and feels are
independent of the Java Look and Feel. This method is here so
subclasses can set a UI (subclass of RTextAreaUI
) if they
have to.ui
- The new UI.JTextComponent.setUI(javax.swing.plaf.TextUI)
public void setTabsEmulated(boolean areEmulated)
convertTabsToSpaces()
and convertSpacesToTabs()
.areEmulated
- Whether or not tabs should be emulated with spaces.convertSpacesToTabs()
,
convertTabsToSpaces()
,
getTabsEmulated()
public void setTabSize(int size)
setTabSize()
doesn't work for a JTextArea
unless you use the constructor
specifying the number of rows and columns...Sets the number of characters to expand tabs to. This will be multiplied by the maximum advance for variable width fonts. A PropertyChange event ("tabSize") is fired when the tab size changes.
setTabSize
in class JTextArea
size
- Number of characters to expand to.protected void updateMarginLineX()
RSyntaxTextArea
that
have multiple fonts can define exactly what it means, for example, for
the margin line to be "80 characters" over.public int yForLine(int line) throws BadLocationException
line
- The line number.-1
if
this text area doesn't yet have a positive size or the line is
hidden (i.e. from folding).BadLocationException
- If line
isn't a valid line
number for this document.public int yForLineContaining(int offs) throws BadLocationException
offs
- The offset info the document.-1
if
this text area doesn't yet have a positive size or the line is
hidden (i.e. from folding).BadLocationException
- If offs
isn't a valid offset
into the document.Copyright © 2003–2015. All rights reserved.