javax.swing
Class JTextArea

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.text.JTextComponent
                          |
                          +--javax.swing.JTextArea
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Scrollable, Serializable
public class JTextArea
extends JTextComponent

A JTextArea is a multi-line area that displays plain text. It is intended to be a lightweight component that provides source compatibility with the java.awt.TextArea class where it can reasonably do so. You can find information and examples of using all the text components in Using Text Components, a section in The Java Tutorial.

This component has capabilities not found in the java.awt.TextArea class. The superclass should be consulted for additional capabilities. Alternative multi-line text classes with more capabilities are JTextPane and JEditorPane.

The java.awt.TextArea internally handles scrolling. JTextArea is different in that it doesn't manage scrolling, but implements the swing Scrollable interface. This allows it to be placed inside a JScrollPane if scrolling behavior is desired, and used directly if scrolling is not desired.

The java.awt.TextArea has the ability to do line wrapping. This was controlled by the horizontal scrolling policy. Since scrolling is not done by JTextArea directly, backward compatibility must be provided another way. JTextArea has a bound property for line wrapping that controls whether or not it will wrap lines. By default, the line wrapping property is set to false (not wrapped).

java.awt.TextArea has two properties rows and columns that are used to determine the preferred size. JTextArea uses these properties to indicate the preferred size of the viewport when placed inside a JScrollPane to match the functionality provided by java.awt.TextArea. JTextArea has a preferred size of what is needed to display all of the text, so that it functions properly inside of a JScrollPane. If the value for rows or columns is equal to zero, the preferred size along that axis is used for the viewport preferred size along the same axis.

The java.awt.TextArea could be monitored for changes by adding a TextListener for TextEvents. In the JTextComponent based components, changes are broadcasted from the model via a DocumentEvent to DocumentListeners. The DocumentEvent gives the location of the change and the kind of change if desired. The code fragment might look something like:

    DocumentListener myListener = ??;
    JTextArea myArea = ??;
    myArea.getDocument().addDocumentListener(myListener);
 

For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JTextArea key assignments.

Newlines
For a discussion on how newlines are handled, see DefaultEditorKit.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

See Also:
JTextPane, JEditorPane

 

Nested Class Summary

protected  class JTextArea.AccessibleJTextArea
    This class implements accessibility support for the JTextArea class.
 
Nested classes inherited from class javax.swing.text.JTextComponent
JTextComponent.KeyBinding
 
Nested classes inherited from class javax.swing.JComponent
 
Nested classes inherited from class java.awt.Container
 
Nested classes inherited from class java.awt.Component
Component.BltBufferStrategy, Component.FlipBufferStrategy
 

 

Field Summary

 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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

JTextArea()
    Constructs a new TextArea.
JTextArea(Document doc)
    Constructs a new JTextArea with the given document model, and defaults for all of the other arguments (null, 0, 0).
JTextArea(Document doc, String text, int rows, int columns)
    Constructs a new JTextArea with the specified number of rows and columns, and the given model.
JTextArea(int rows, int columns)
    Constructs a new empty TextArea with the specified number of rows and columns.
JTextArea(String text)
    Constructs a new TextArea with the specified text displayed.
JTextArea(String text, int rows, int columns)
    Constructs a new TextArea with the specified text and number of rows and columns.
 

 

Method Summary

 void append(String str)
    Appends the given text to the end of the document.
protected  Document createDefaultModel()
    Creates the default implementation of the model to be used at construction if one isn't explicitly given.
 AccessibleContext getAccessibleContext()
    Gets the AccessibleContext associated with this JTextArea.
 int getColumns()
    Returns the number of columns in the TextArea.
protected  int getColumnWidth()
    Gets column width.
 int getLineCount()
    Determines the number of lines contained in the area.
 int getLineEndOffset(int line)
    Determines the offset of the end of the given line.
 int getLineOfOffset(int offset)
    Translates an offset into the components text to a line number.
 int getLineStartOffset(int line)
    Determines the offset of the start of the given line.
 boolean getLineWrap()
    Gets the line-wrapping policy of the text area.
 Dimension getPreferredScrollableViewportSize()
    Returns the preferred size of the viewport if this component is embedded in a JScrollPane.
 Dimension getPreferredSize()
    Returns the preferred size of the TextArea.
protected  int getRowHeight()
    Defines the meaning of the height of a row.
 int getRows()
    Returns the number of rows in the TextArea.
 boolean getScrollableTracksViewportWidth()
    Returns true if a viewport should always force the width of this Scrollable to match the width of the viewport.
 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
    Components that display logical rows or columns should compute the scroll increment that will completely expose one new row or column, depending on the value of orientation.
 int getTabSize()
    Gets the number of characters used to expand tabs.
 String getUIClassID()
    Returns the class ID for the UI.
 boolean getWrapStyleWord()
    Gets the style of wrapping used if the text area is wrapping lines.
 void insert(String str, int pos)
    Inserts the specified text at the specified position.
protected  String paramString()
    Returns a string representation of this JTextArea.
 void replaceRange(String str, int start, int end)
    Replaces text from the indicated start to end position with the new text specified.
 void setColumns(int columns)
    Sets the number of columns for this TextArea.
 void setFont(Font f)
    Sets the current font.
 void setLineWrap(boolean wrap)
    Sets the line-wrapping policy of the text area.
 void setRows(int rows)
    Sets the number of rows for this TextArea.
 void setTabSize(int size)
    Sets the number of characters to expand tabs to.
 void setWrapStyleWord(boolean word)
    Sets the style of wrapping used if the text area is wrapping lines.
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin,