javax.swing.plaf.basic

## Class BasicTextAreaUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.TextUI
    - - javax.swing.plaf.basic.BasicTextUI
      - - javax.swing.plaf.basic.BasicTextAreaUI

- All Implemented Interfaces:
    ViewFactory
  Direct Known Subclasses:
    SynthTextAreaUI

      public class BasicTextAreaUI
      extends BasicTextUI

  Provides the look and feel for a plain text editor. In this implementation the default UI is extended to act as a simple view factory.

  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 JavaBeans™ has been added to the `java.beans` package. Please see `XMLEncoder`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTextUI

      `BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BasicTextAreaUI()` | Constructs a new BasicTextAreaUI object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `View` | `create(Element elem)` | Creates the view for an element.
    `static ComponentUI` | `createUI(JComponent ta)` | Creates a UI for a JTextArea.
    `int` | `getBaseline(JComponent c, int width, int height)` | Returns the baseline.
    `Component.BaselineResizeBehavior` | `getBaselineResizeBehavior(JComponent c)` | Returns an enum indicating how the baseline of the component changes as the size changes.
    `Dimension` | `getMinimumSize(JComponent c)` | The method is overridden to take into account caret width.
    `Dimension` | `getPreferredSize(JComponent c)` | The method is overridden to take into account caret width.
    `protected String` | `getPropertyPrefix()` | Fetches the name used as a key to look up properties through the UIManager.
    `protected void` | `installDefaults()` | Initializes component properties, such as font, foreground, background, caret color, selection color, selected text color, disabled text color, and border color.
    `protected void` | `propertyChange(PropertyChangeEvent evt)` | This method gets called when a bound property is changed on the associated JTextComponent.

    - ### Methods inherited from class javax.swing.plaf.basic.BasicTextUI

      `create, createCaret, createHighlighter, createKeymap, damageRange, damageRange, getComponent, getEditorKit, getKeymapName, getMaximumSize, getNextVisualPositionFrom, getRootView, getToolTipText, getVisibleEditorRect, installKeyboardActions, installListeners, installUI, modelChanged, modelToView, modelToView, paint, paintBackground, paintSafely, setView, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, update, viewToModel, viewToModel`

    - ### Methods inherited from class javax.swing.plaf.ComponentUI

      `contains, getAccessibleChild, getAccessibleChildrenCount`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BasicTextAreaUI

          public BasicTextAreaUI()

      Constructs a new BasicTextAreaUI object.

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI(JComponent ta)

      Creates a UI for a JTextArea.
      Parameters:
        `ta` - a text area
      Returns:
        the UI

    - #### getPropertyPrefix

          protected String getPropertyPrefix()

      Fetches the name used as a key to look up properties through the UIManager. This is used as a prefix to all the standard text properties.
      Specified by:
        `getPropertyPrefix` in class `BasicTextUI`
      Returns:
        the name ("TextArea")

    - #### installDefaults

          protected void installDefaults()

      Description copied from class: `BasicTextUI`
      Initializes component properties, such as font, foreground, background, caret color, selection color, selected text color, disabled text color, and border color. The font, foreground, and background properties are only set if their current value is either null or a UIResource, other properties are set if the current value is null.
      Overrides:
        `installDefaults` in class `BasicTextUI`
      See Also:
        `BasicTextUI.uninstallDefaults()`, `BasicTextUI.installUI(javax.swing.JComponent)`

    - #### propertyChange

          protected void propertyChange(PropertyChangeEvent evt)

      This method gets called when a bound property is changed on the associated JTextComponent. This is a hook which UI implementations may change to reflect how the UI displays bound properties of JTextComponent subclasses. This is implemented to rebuild the View when the WrapLine or the WrapStyleWord property changes.
      Overrides:
        `propertyChange` in class `BasicTextUI`
      Parameters:
        `evt` - the property change event

    - #### getPreferredSize

          public Dimension getPreferredSize(JComponent c)

      The method is overridden to take into account caret width.
      Overrides:
        `getPreferredSize` in class `BasicTextUI`
      Parameters:
        `c` - the editor component
      Returns:
        the preferred size
      Throws:
        `IllegalArgumentException` - if invalid value is passed
      Since:
        1.5
      See Also:
        `JComponent.getPreferredSize()`, `LayoutManager.preferredLayoutSize(java.awt.Container)`

    - #### getMinimumSize

          public Dimension getMinimumSize(JComponent c)

      The method is overridden to take into account caret width.
      Overrides:
        `getMinimumSize` in class `BasicTextUI`
      Parameters:
        `c` - the editor component
      Returns:
        the minimum size
      Throws:
        `IllegalArgumentException` - if invalid value is passed
      Since:
        1.5
      See Also:
        `JComponent.getMinimumSize()`, `LayoutManager.minimumLayoutSize(java.awt.Container)`, `ComponentUI.getPreferredSize(javax.swing.JComponent)`

    - #### create

          public View create(Element elem)

      Creates the view for an element. Returns a WrappedPlainView or PlainView.
      Specified by:
        `create` in interface `ViewFactory`
      Overrides:
        `create` in class `BasicTextUI`
      Parameters:
        `elem` - the element
      Returns:
        the view
      See Also:
        `View`

    - #### getBaseline

          public int getBaseline(JComponent c,
                                 int width,
                                 int height)

      Returns the baseline.
      Overrides:
        `getBaseline` in class `ComponentUI`
      Parameters:
        `c` - `JComponent` baseline is being requested for
        `width` - the width to get the baseline for
        `height` - the height to get the baseline for
      Returns:
        baseline or a value < 0 indicating there is no reasonable baseline
      Throws:
        `NullPointerException` - if `c` is `null`
        `IllegalArgumentException` - if width or height is < 0
      Since:
        1.6
      See Also:
        `JComponent.getBaseline(int, int)`

    - #### getBaselineResizeBehavior

          public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)

      Returns an enum indicating how the baseline of the component changes as the size changes.
      Overrides:
        `getBaselineResizeBehavior` in class `ComponentUI`
      Parameters:
        `c` - `JComponent` to return baseline resize behavior for
      Returns:
        an enum indicating how the baseline changes as the component size changes
      Throws:
        `NullPointerException` - if `c` is `null`
      Since:
        1.6
      See Also:
        `JComponent.getBaseline(int, int)`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.