Class JEditTextArea

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

    public class JEditTextArea
    extends javax.swing.JComponent
    jEdit's text area component. It is more suited for editing program source code than JEditorPane, because it drops the unnecessary features (images, variable-width lines, and so on) and adds a whole bunch of useful goodies such as:
    • More flexible key binding scheme
    • Supports macro recorders
    • Rectangular selection
    • Bracket highlighting
    • Syntax highlighting
    • Command repetition
    • Block caret can be enabled
    It is also faster and doesn't have as many problems. It can be used in other applications; the only other part of jEdit it depends on is the syntax package.

    To use it in your app, treat it like any other component, for example:

     JEditTextArea ta = new JEditTextArea();
     ta.setTokenMarker(new JavaTokenMarker());
     ta.setText("public class Test {\n" + "    public static void main(String[] args) {\n"
        + "  System.out.println(\"Hello World\");\n" + "  }\n" + "}");
     
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Constructor Summary

      Constructors 
      Constructor Description
      JEditTextArea()
      Creates a new JEditTextArea with the default settings.
      JEditTextArea​(TextAreaDefaults defaults)
      Creates a new JEditTextArea with the specified settings.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int _offsetToX​(int line, int offset)
      Converts an offset in a line into an x co-ordinate.
      void addCaretListener​(javax.swing.event.CaretListener listener)
      Adds a caret change listener to this text area.
      void blinkCaret()
      Blinks the caret.
      void comment()  
      void commentshift()  
      void copy()
      Places the selected text into the clipboard.
      void cut()
      Deletes the selected text from the text area and places it into the clipboard.
      protected void documentChanged​(javax.swing.event.DocumentEvent evt)  
      protected void fireCaretEvent()  
      int getBracketLine()
      Returns the line of the highlighted bracket (the bracket matching the one before the caret)
      int getBracketPosition()
      Returns the position of the highlighted bracket (the bracket matching the one before the caret)
      int getCaretLine()
      Returns the caret line.
      int getCaretPosition()
      Returns the caret position.
      java.lang.String getCommentChar()  
      SyntaxDocument getDocument()
      Returns the document this text area is editing.
      int getDocumentLength()
      Returns the length of the document.
      int getElectricScroll()
      Returns the number of lines from the top and button of the text area that are always visible.
      int getFirstLine()
      Returns the line displayed at the text area's origin.
      int getHorizontalOffset()
      Returns the horizontal offset of drawn lines.
      InputHandler getInputHandler()
      Returns the input handler.
      int getLineCount()
      Returns the number of lines in the document.
      int getLineEndOffset​(int line)
      Returns the end offset of the specified line.
      int getLineLength​(int line)
      Returns the length of the specified line.
      int getLineOfOffset​(int offset)
      Returns the line containing the specified offset.
      int getLineStartOffset​(int line)
      Returns the start offset of the specified line.
      java.lang.String getLineText​(int lineIndex)
      Returns the text on the specified line.
      void getLineText​(int lineIndex, javax.swing.text.Segment segment)
      Copies the text on the specified line into a segment.
      int getMagicCaretPosition()
      Returns the `magic' caret position.
      int getMarkLine()
      Returns the mark line.
      int getMarkPosition()
      Returns the mark position.
      TextAreaPainter getPainter()
      Returns the object responsible for painting this text area.
      javax.swing.JPopupMenu getRightClickPopup()
      Returns the right click popup menu.
      java.lang.String getSelectedText()
      Returns the selected text, or null if no selection is active.
      int getSelectionEnd()
      Returns the selection end offset.
      int getSelectionEnd​(int line)
      Returns the offset where the selection ends on the specified line.
      int getSelectionEndLine()
      Returns the selection end line.
      int getSelectionStart()
      Returns the selection start offset.
      int getSelectionStart​(int line)
      Returns the offset where the selection starts on the specified line.
      int getSelectionStartLine()
      Returns the selection start line.
      java.lang.String getText()
      Returns the entire text of this text area.
      java.lang.String getText​(int start, int len)
      Returns the specified substring of the document.
      void getText​(int start, int len, javax.swing.text.Segment segment)
      Copies the specified substring of the document into a segment.
      TokenMarker getTokenMarker()
      Returns the document's token marker.
      int getVisibleLines()
      Returns the number of lines visible in this text area.
      boolean isCaretBlinkEnabled()
      Returns true if the caret is blinking, false otherwise.
      boolean isCaretVisible()
      Returns true if the caret is visible, false otherwise.
      boolean isEditable()
      Returns true if this text area is editable, false otherwise.
      boolean isGutterVisible()  
      boolean isManagingFocus()
      Returns if this component can be traversed by pressing the Tab key.
      boolean isOverwriteEnabled()
      Returns true if overwrite mode is enabled, false otherwise.
      boolean isSelectionRectangular()
      Returns true if the selection is rectangular, false otherwise.
      int lineToY​(int line)
      Converts a line index to a y co-ordinate.
      int offsetToX​(int line, int offset)
      Converts an offset in a line into an x co-ordinate.
      void overwriteSetSelectedText​(java.lang.String str)
      Similar to setSelectedText(), but overstrikes the appropriate number of characters if overwrite mode is enabled.
      void paste()
      Inserts the clipboard contents into the text.
      void processKeyEvent​(java.awt.event.KeyEvent evt)
      Forwards key events directly to the input handler.
      void recalculateVisibleLines()
      Recalculates the number of visible lines.
      void removeCaretListener​(javax.swing.event.CaretListener listener)
      Removes a caret change listener from this text area.
      void removeNotify()
      Called by the AWT when this component is removed from its parent.
      boolean scrollTo​(int line, int offset)
      Ensures that the specified line and offset is visible by scrolling the text area if necessary.
      boolean scrollToCaret()
      Ensures that the caret is visible by scrolling the text area if necessary.
      void select​(int start, int end)
      Selects from the start offset to the end offset.
      void selectAll()
      Selects all text in the document.
      void selectNone()
      Moves the mark to the caret position.
      void setCaretBlinkEnabled​(boolean caretBlinks)
      Toggles caret blinking.
      void setCaretPosition​(int caret)
      Sets the caret position.
      void setCaretVisible​(boolean caretVisible)
      Sets if the caret should be visible.
      void setCommentChar​(java.lang.String commentChar)  
      void setDocument​(SyntaxDocument document)
      Sets the document this text area is editing.
      void setEditable​(boolean editable)
      Sets if this component is editable.
      void setElectricScroll​(int electricScroll)
      Sets the number of lines from the top and bottom of the text area that are always visible
      void setEnabled​(boolean b)
      This customization of enabling functionality is a bit of a hack - it assumes that when the text area is enabled, all users will want a visible, blinking caret, and light highlighting enabled, and when not enabled, to turn all of those things off.
      void setFirstLine​(int firstLine)
      Sets the line displayed at the text area's origin without updating the scroll bars.
      void setGutterVisible​(boolean b)  
      void setHorizontalOffset​(int horizontalOffset)
      Sets the horizontal offset of drawn lines.
      void setInputHandler​(InputHandler inputHandler)
      Sets the input handler.
      void setMagicCaretPosition​(int magicCaret)
      Sets the `magic' caret position.
      boolean setOrigin​(int firstLine, int horizontalOffset)
      A fast way of changing both the first line and horizontal offset.
      void setOverwriteEnabled​(boolean overwrite)
      Sets if overwrite mode should be enabled.
      void setRightClickPopup​(javax.swing.JPopupMenu popup)
      Sets the right click popup menu.
      void setSelectedText​(java.lang.String selectedText)
      Replaces the selection with the specified text.
      void setSelectionEnd​(int selectionEnd)
      Sets the selection end.
      void setSelectionRectangular​(boolean rectSelect)
      Sets if the selection should be rectangular.
      void setSelectionStart​(int selectionStart)
      Sets the selection start.
      void setText​(java.lang.String text)
      Sets the entire text of this text area.
      void setTokenMarker​(TokenMarker tokenMarker)
      Sets the document's token marker.
      void tab()  
      void tabshift()  
      protected void updateBracketHighlight​(int newCaretPosition)  
      void updateScrollBars()
      Updates the state of the scroll bars.
      int xToOffset​(int line, int x)
      Converts an x co-ordinate to an offset within a line.
      int xyToOffset​(int x, int y)
      Converts a point to an offset, from the start of the text.
      int yToLine​(int y)
      Converts a y co-ordinate to a line index.
      • 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
      • 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, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, 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, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • LEFT_OF_SCROLLBAR

        public static java.lang.String LEFT_OF_SCROLLBAR
        Adding components with this name to the text area will place them left of the horizontal scroll bar. In jEdit, the status bar is added this way.
      • CENTER

        protected static java.lang.String CENTER
      • RIGHT

        protected static java.lang.String RIGHT
      • BOTTOM

        protected static java.lang.String BOTTOM
      • LEFT

        protected static java.lang.String LEFT
      • focusedComponent

        protected static JEditTextArea focusedComponent
      • caretTimer

        protected static javax.swing.Timer caretTimer
      • gutter

        protected Gutter gutter
      • undoManager

        protected javax.swing.undo.UndoManager undoManager
      • popup

        protected javax.swing.JPopupMenu popup
      • listenerList

        protected javax.swing.event.EventListenerList listenerList
      • caretEvent

        protected com.inductiveautomation.ignition.client.jedittextarea.JEditTextArea.MutableCaretEvent caretEvent
      • caretBlinks

        protected boolean caretBlinks
      • caretVisible

        protected boolean caretVisible
      • blink

        protected boolean blink
      • editable

        protected boolean editable
      • firstLine

        protected int firstLine
      • visibleLines

        protected int visibleLines
      • electricScroll

        protected int electricScroll
      • horizontalOffset

        protected int horizontalOffset
      • vertical

        protected javax.swing.JScrollBar vertical
      • horizontal

        protected javax.swing.JScrollBar horizontal
      • scrollBarsInitialized

        protected boolean scrollBarsInitialized
      • documentHandler

        protected com.inductiveautomation.ignition.client.jedittextarea.JEditTextArea.DocumentHandler documentHandler
      • lineSegment

        protected javax.swing.text.Segment lineSegment
      • selectionStart

        protected int selectionStart
      • selectionStartLine

        protected int selectionStartLine
      • selectionEnd

        protected int selectionEnd
      • selectionEndLine

        protected int selectionEndLine
      • biasLeft

        protected boolean biasLeft
      • bracketPosition

        protected int bracketPosition
      • bracketLine

        protected int bracketLine
      • magicCaret

        protected int magicCaret
      • overwrite

        protected boolean overwrite
      • rectSelect

        protected boolean rectSelect
    • Constructor Detail

      • JEditTextArea

        public JEditTextArea()
        Creates a new JEditTextArea with the default settings.
      • JEditTextArea

        public JEditTextArea​(TextAreaDefaults defaults)
        Creates a new JEditTextArea with the specified settings.
        Parameters:
        defaults - The default settings
    • Method Detail

      • isManagingFocus

        public final boolean isManagingFocus()
        Returns if this component can be traversed by pressing the Tab key. This returns false.
        Overrides:
        isManagingFocus in class javax.swing.JComponent
      • getPainter

        public final TextAreaPainter getPainter()
        Returns the object responsible for painting this text area.
      • getInputHandler

        public final InputHandler getInputHandler()
        Returns the input handler.
      • setInputHandler

        public void setInputHandler​(InputHandler inputHandler)
        Sets the input handler.
        Parameters:
        inputHandler - The new input handler
      • isCaretBlinkEnabled

        public final boolean isCaretBlinkEnabled()
        Returns true if the caret is blinking, false otherwise.
      • setCaretBlinkEnabled

        public void setCaretBlinkEnabled​(boolean caretBlinks)
        Toggles caret blinking.
        Parameters:
        caretBlinks - True if the caret should blink, false otherwise
      • setEnabled

        public void setEnabled​(boolean b)
        This customization of enabling functionality is a bit of a hack - it assumes that when the text area is enabled, all users will want a visible, blinking caret, and light highlighting enabled, and when not enabled, to turn all of those things off.
        Overrides:
        setEnabled in class javax.swing.JComponent
        See Also:
        Component.setEnabled(boolean)
      • isCaretVisible

        public final boolean isCaretVisible()
        Returns true if the caret is visible, false otherwise.
      • setCaretVisible

        public void setCaretVisible​(boolean caretVisible)
        Sets if the caret should be visible.
        Parameters:
        caretVisible - True if the caret should be visible, false otherwise
      • blinkCaret

        public final void blinkCaret()
        Blinks the caret.
      • getElectricScroll

        public final int getElectricScroll()
        Returns the number of lines from the top and button of the text area that are always visible.
      • setElectricScroll

        public final void setElectricScroll​(int electricScroll)
        Sets the number of lines from the top and bottom of the text area that are always visible
        Parameters:
        electricScroll - The number of lines always visible from the top or bottom
      • updateScrollBars

        public void updateScrollBars()
        Updates the state of the scroll bars. This should be called if the number of lines in the document changes, or when the size of the text are changes.
      • getFirstLine

        public final int getFirstLine()
        Returns the line displayed at the text area's origin.
      • setFirstLine

        public void setFirstLine​(int firstLine)
        Sets the line displayed at the text area's origin without updating the scroll bars.
      • setGutterVisible

        public void setGutterVisible​(boolean b)
      • isGutterVisible

        public boolean isGutterVisible()
      • getVisibleLines

        public final int getVisibleLines()
        Returns the number of lines visible in this text area.
      • recalculateVisibleLines

        public final void recalculateVisibleLines()
        Recalculates the number of visible lines. This should not be called directly.
      • getHorizontalOffset

        public final int getHorizontalOffset()
        Returns the horizontal offset of drawn lines.
      • setHorizontalOffset

        public void setHorizontalOffset​(int horizontalOffset)
        Sets the horizontal offset of drawn lines. This can be used to implement horizontal scrolling.
        Parameters:
        horizontalOffset - offset The new horizontal offset
      • setOrigin

        public boolean setOrigin​(int firstLine,
                                 int horizontalOffset)
        A fast way of changing both the first line and horizontal offset.
        Parameters:
        firstLine - The new first line
        horizontalOffset - The new horizontal offset
        Returns:
        True if any of the values were changed, false otherwise
      • scrollToCaret

        public boolean scrollToCaret()
        Ensures that the caret is visible by scrolling the text area if necessary.
        Returns:
        True if scrolling was actually performed, false if the caret was already visible
      • scrollTo

        public boolean scrollTo​(int line,
                                int offset)
        Ensures that the specified line and offset is visible by scrolling the text area if necessary.
        Parameters:
        line - The line to scroll to
        offset - The offset in the line to scroll to
        Returns:
        True if scrolling was actually performed, false if the line and offset was already visible
      • lineToY

        public int lineToY​(int line)
        Converts a line index to a y co-ordinate.
        Parameters:
        line - The line
      • yToLine

        public int yToLine​(int y)
        Converts a y co-ordinate to a line index.
        Parameters:
        y - The y co-ordinate
      • offsetToX

        public final int offsetToX​(int line,
                                   int offset)
        Converts an offset in a line into an x co-ordinate. This is a slow version that can be used any time.
        Parameters:
        line - The line
        offset - The offset, from the start of the line
      • _offsetToX

        public int _offsetToX​(int line,
                              int offset)
        Converts an offset in a line into an x co-ordinate. This is a fast version that should only be used if no changes were made to the text since the last repaint.
        Parameters:
        line - The line
        offset - The offset, from the start of the line
      • xToOffset

        public int xToOffset​(int line,
                             int x)
        Converts an x co-ordinate to an offset within a line.
        Parameters:
        line - The line
        x - The x co-ordinate
      • xyToOffset

        public int xyToOffset​(int x,
                              int y)
        Converts a point to an offset, from the start of the text.
        Parameters:
        x - The x co-ordinate of the point
        y - The y co-ordinate of the point
      • getDocument

        public final SyntaxDocument getDocument()
        Returns the document this text area is editing.
      • setDocument

        public void setDocument​(SyntaxDocument document)
        Sets the document this text area is editing.
        Parameters:
        document - The document
      • getTokenMarker

        public final TokenMarker getTokenMarker()
        Returns the document's token marker. Equivalent to calling getDocument().getTokenMarker().
      • setTokenMarker

        public final void setTokenMarker​(TokenMarker tokenMarker)
        Sets the document's token marker. Equivalent to caling getDocument().setTokenMarker().
        Parameters:
        tokenMarker - The token marker
      • getDocumentLength

        public final int getDocumentLength()
        Returns the length of the document. Equivalent to calling getDocument().getLength().
      • getLineCount

        public final int getLineCount()
        Returns the number of lines in the document.
      • getLineOfOffset

        public final int getLineOfOffset​(int offset)
        Returns the line containing the specified offset.
        Parameters:
        offset - The offset
      • getLineStartOffset

        public int getLineStartOffset​(int line)
        Returns the start offset of the specified line.
        Parameters:
        line - The line
        Returns:
        The start offset of the specified line, or -1 if the line is invalid
      • getLineEndOffset

        public int getLineEndOffset​(int line)
        Returns the end offset of the specified line.
        Parameters:
        line - The line
        Returns:
        The end offset of the specified line, or -1 if the line is invalid.
      • getLineLength

        public int getLineLength​(int line)
        Returns the length of the specified line.
        Parameters:
        line - The line
      • getText

        public java.lang.String getText()
        Returns the entire text of this text area.
      • setText

        public void setText​(java.lang.String text)
        Sets the entire text of this text area.
      • getText

        public final java.lang.String getText​(int start,
                                              int len)
        Returns the specified substring of the document.
        Parameters:
        start - The start offset
        len - The length of the substring
        Returns:
        The substring, or null if the offsets are invalid
      • getText

        public final void getText​(int start,
                                  int len,
                                  javax.swing.text.Segment segment)
        Copies the specified substring of the document into a segment. If the offsets are invalid, the segment will contain a null string.
        Parameters:
        start - The start offset
        len - The length of the substring
        segment - The segment
      • getLineText

        public final java.lang.String getLineText​(int lineIndex)
        Returns the text on the specified line.
        Parameters:
        lineIndex - The line
        Returns:
        The text, or null if the line is invalid
      • getLineText

        public final void getLineText​(int lineIndex,
                                      javax.swing.text.Segment segment)
        Copies the text on the specified line into a segment. If the line is invalid, the segment will contain a null string.
        Parameters:
        lineIndex - The line
      • getSelectionStart

        public final int getSelectionStart()
        Returns the selection start offset.
      • getSelectionStart

        public int getSelectionStart​(int line)
        Returns the offset where the selection starts on the specified line.
      • getSelectionStartLine

        public final int getSelectionStartLine()
        Returns the selection start line.
      • setSelectionStart

        public final void setSelectionStart​(int selectionStart)
        Sets the selection start. The new selection will be the new selection start and the old selection end.
        Parameters:
        selectionStart - The selection start
        See Also:
        select(int, int)
      • getSelectionEnd

        public final int getSelectionEnd()
        Returns the selection end offset.
      • getSelectionEnd

        public int getSelectionEnd​(int line)
        Returns the offset where the selection ends on the specified line.
      • getSelectionEndLine

        public final int getSelectionEndLine()
        Returns the selection end line.
      • setSelectionEnd

        public final void setSelectionEnd​(int selectionEnd)
        Sets the selection end. The new selection will be the old selection start and the bew selection end.
        Parameters:
        selectionEnd - The selection end
        See Also:
        select(int, int)
      • getCaretPosition

        public final int getCaretPosition()
        Returns the caret position. This will either be the selection start or the selection end, depending on which direction the selection was made in.
      • getCaretLine

        public final int getCaretLine()
        Returns the caret line.
      • getMarkPosition

        public final int getMarkPosition()
        Returns the mark position. This will be the opposite selection bound to the caret position.
        See Also:
        getCaretPosition()
      • getMarkLine

        public final int getMarkLine()
        Returns the mark line.
      • setCaretPosition

        public final void setCaretPosition​(int caret)
        Sets the caret position. The new selection will consist of the caret position only (hence no text will be selected)
        Parameters:
        caret - The caret position
        See Also:
        select(int, int)
      • selectAll

        public final void selectAll()
        Selects all text in the document.
      • selectNone

        public final void selectNone()
        Moves the mark to the caret position.
      • select

        public void select​(int start,
                           int end)
        Selects from the start offset to the end offset. This is the general selection method used by all other selecting methods. The caret position will be start if start < end, and end if end > start.
        Parameters:
        start - The start offset
        end - The end offset
      • getSelectedText

        public final java.lang.String getSelectedText()
        Returns the selected text, or null if no selection is active.
      • setSelectedText

        public void setSelectedText​(java.lang.String selectedText)
        Replaces the selection with the specified text.
        Parameters:
        selectedText - The replacement text for the selection
      • isEditable

        public final boolean isEditable()
        Returns true if this text area is editable, false otherwise.
      • setEditable

        public final void setEditable​(boolean editable)
        Sets if this component is editable.
        Parameters:
        editable - True if this text area should be editable, false otherwise
      • getRightClickPopup

        public final javax.swing.JPopupMenu getRightClickPopup()
        Returns the right click popup menu.
      • setRightClickPopup

        public final void setRightClickPopup​(javax.swing.JPopupMenu popup)
        Sets the right click popup menu.
        Parameters:
        popup - The popup
      • getMagicCaretPosition

        public final int getMagicCaretPosition()
        Returns the `magic' caret position. This can be used to preserve the column position when moving up and down lines.
      • setMagicCaretPosition

        public final void setMagicCaretPosition​(int magicCaret)
        Sets the `magic' caret position. This can be used to preserve the column position when moving up and down lines.
        Parameters:
        magicCaret - The magic caret position
      • overwriteSetSelectedText

        public void overwriteSetSelectedText​(java.lang.String str)
        Similar to setSelectedText(), but overstrikes the appropriate number of characters if overwrite mode is enabled.
        Parameters:
        str - The string
        See Also:
        setSelectedText(String), isOverwriteEnabled()
      • isOverwriteEnabled

        public final boolean isOverwriteEnabled()
        Returns true if overwrite mode is enabled, false otherwise.
      • setOverwriteEnabled

        public final void setOverwriteEnabled​(boolean overwrite)
        Sets if overwrite mode should be enabled.
        Parameters:
        overwrite - True if overwrite mode should be enabled, false otherwise.
      • isSelectionRectangular

        public final boolean isSelectionRectangular()
        Returns true if the selection is rectangular, false otherwise.
      • setSelectionRectangular

        public final void setSelectionRectangular​(boolean rectSelect)
        Sets if the selection should be rectangular.
        Parameters:
        rectSelect - True if the selection should be rectangular, false otherwise.
      • getBracketPosition

        public final int getBracketPosition()
        Returns the position of the highlighted bracket (the bracket matching the one before the caret)
      • getBracketLine

        public final int getBracketLine()
        Returns the line of the highlighted bracket (the bracket matching the one before the caret)
      • addCaretListener

        public final void addCaretListener​(javax.swing.event.CaretListener listener)
        Adds a caret change listener to this text area.
        Parameters:
        listener - The listener
      • removeCaretListener

        public final void removeCaretListener​(javax.swing.event.CaretListener listener)
        Removes a caret change listener from this text area.
        Parameters:
        listener - The listener
      • cut

        public void cut()
        Deletes the selected text from the text area and places it into the clipboard.
      • copy

        public void copy()
        Places the selected text into the clipboard.
      • paste

        public void paste()
        Inserts the clipboard contents into the text.
      • tab

        public void tab()
      • tabshift

        public void tabshift()
      • comment

        public void comment()
      • commentshift

        public void commentshift()
      • removeNotify

        public void removeNotify()
        Called by the AWT when this component is removed from its parent. This stops clears the currently focused component.
        Overrides:
        removeNotify in class javax.swing.JComponent
      • processKeyEvent

        public void processKeyEvent​(java.awt.event.KeyEvent evt)
        Forwards key events directly to the input handler. This is slightly faster than using a KeyListener because some Swing overhead is avoided.
        Overrides:
        processKeyEvent in class javax.swing.JComponent
      • fireCaretEvent

        protected void fireCaretEvent()
      • updateBracketHighlight

        protected void updateBracketHighlight​(int newCaretPosition)
      • documentChanged

        protected void documentChanged​(javax.swing.event.DocumentEvent evt)
      • getCommentChar

        public java.lang.String getCommentChar()
      • setCommentChar

        public void setCommentChar​(java.lang.String commentChar)