Package com.jidesoft.swing
Class AutoResizingTextArea
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.text.JTextComponent
-
- javax.swing.JTextArea
-
- com.jidesoft.swing.AutoResizingTextArea
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,javax.swing.Scrollable
public class AutoResizingTextArea extends javax.swing.JTextAreaAn extended version ofJTextAreathat automatically resizes itself vertically. This component works best when used in a layout that obeys preferred height of its components. For example, you can use aBorderLayoutand placeAutoResizingTextAreato the north or south side. Similarly, you can use aJideBoxLayoutand use FLEXIBLE or FIX as the constraint.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JTextArea
javax.swing.JTextArea.AccessibleJTextArea
-
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 static intDEFAULT_MAX_ROWSDefault maximum height of the text area in rows.static intDEFAULT_MIN_ROWSDefault minimum height of the text area in rows.-
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 AutoResizingTextArea()Creates a textarea with the default minimum and maximum number of rows.AutoResizingTextArea(int minRows)Creates a textarea with the specified minimum number of rows.AutoResizingTextArea(int minRows, int maxRows)Creates a textarea with the specified minimum and maximum number of rows.AutoResizingTextArea(int minRows, int maxRows, int columns)Create a newAutoResizingTextAreawith a height bounded by the provided minimum and maximum row counts and with its width dictated by the provided column count.AutoResizingTextArea(java.lang.String text)Creates a textarea with the default minimum and maximum row count and the provided initial text.AutoResizingTextArea(java.lang.String text, int minRows, int maxRows, int columns)Create a newAutoResizingTextAreawith a height bounded by the provided minimum and maximum row counts and with its width dictated by the provided column count.AutoResizingTextArea(javax.swing.text.Document doc)Create a newAutoResizingTextAreausing aDocument.AutoResizingTextArea(javax.swing.text.Document doc, java.lang.String text, int minRows, int maxRows, int columns)Constructs a newAutoResizingTextAreawith the specified number of rows and columns, and the given model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetMaxRows()Gets the maximum number of rows that will be displayed.intgetMinRows()Gets the minimum number of rows that will be displayed.java.awt.DimensiongetPreferredScrollableViewportSize()protected voidnumberOfRowsUpdated(int oldRow, int newRow)Called when the number of rows is updated.voidsetDocument(javax.swing.text.Document doc)voidsetMaxRows(int maxRows)Sets the maximum number of rows that will be displayed.voidsetMinRows(int minRows)Sets the minimum number of rows that will be displayedvoidsetRows(int rows)Sets the number of visible rows.-
Methods inherited from class javax.swing.JTextArea
append, createDefaultModel, getAccessibleContext, getColumns, getColumnWidth, getLineCount, getLineEndOffset, getLineOfOffset, getLineStartOffset, getLineWrap, getPreferredSize, getRowHeight, getRows, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getTabSize, getUIClassID, getWrapStyleWord, insert, paramString, replaceRange, setColumns, setFont, setLineWrap, setTabSize, setWrapStyleWord
-
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, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, 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, 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
-
DEFAULT_MAX_ROWS
public static final int DEFAULT_MAX_ROWS
Default maximum height of the text area in rows.- See Also:
- Constant Field Values
-
DEFAULT_MIN_ROWS
public static final int DEFAULT_MIN_ROWS
Default minimum height of the text area in rows.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AutoResizingTextArea
public AutoResizingTextArea()
Creates a textarea with the default minimum and maximum number of rows.
-
AutoResizingTextArea
public AutoResizingTextArea(int minRows)
Creates a textarea with the specified minimum number of rows.- Parameters:
minRows- The minimum number of rows that this textarea can have.
-
AutoResizingTextArea
public AutoResizingTextArea(int minRows, int maxRows)Creates a textarea with the specified minimum and maximum number of rows.- Parameters:
minRows- The minimum number of rows that this textarea can have.maxRows- The maximum number of rows that this textarea can have.
-
AutoResizingTextArea
public AutoResizingTextArea(java.lang.String text)
Creates a textarea with the default minimum and maximum row count and the provided initial text. The textarea is sized to fit the provided text.- Parameters:
text- The initial text to display.
-
AutoResizingTextArea
public AutoResizingTextArea(int minRows, int maxRows, int columns)Create a newAutoResizingTextAreawith a height bounded by the provided minimum and maximum row counts and with its width dictated by the provided column count.- Parameters:
minRows- The minimum number of rows that this textarea can havemaxRows- The maximum number of rows that this textarea can have.columns- The number of columns that this textarea has.
-
AutoResizingTextArea
public AutoResizingTextArea(java.lang.String text, int minRows, int maxRows, int columns)Create a newAutoResizingTextAreawith a height bounded by the provided minimum and maximum row counts and with its width dictated by the provided column count. The textarea is sized to fit the provided text.- Parameters:
text- The initial text to display in the textarea.minRows- The minimum number of rows that this textarea can havemaxRows- The maximum number of rows that this textarea can have.columns- The number of columns that this textarea has.- Throws:
java.lang.IllegalArgumentException- if the rows or columns arguments are negative.
-
AutoResizingTextArea
public AutoResizingTextArea(javax.swing.text.Document doc)
Create a newAutoResizingTextAreausing aDocument. The document will be set to the text area usingsetDocument(javax.swing.text.Document).- Parameters:
doc- the document.
-
AutoResizingTextArea
public AutoResizingTextArea(javax.swing.text.Document doc, java.lang.String text, int minRows, int maxRows, int columns)Constructs a newAutoResizingTextAreawith the specified number of rows and columns, and the given model. All of the constructors feed through this constructor.- Parameters:
doc- the model to use, or create a default one if nulltext- the text to be displayed, null if noneminRows- the minimum number of rows >= 0maxRows- the maximum number of rows >= 0columns- the number of columns >= 0- Throws:
java.lang.IllegalArgumentException- if the rows or columns arguments are negative.
-
-
Method Detail
-
setRows
public void setRows(int rows)
Sets the number of visible rows. The row value will be forced to the boundaries of the range [minRows ... maxRows] if it is outside that range.- Overrides:
setRowsin classjavax.swing.JTextArea- Parameters:
rows- The number of rows to show
-
numberOfRowsUpdated
protected void numberOfRowsUpdated(int oldRow, int newRow)Called when the number of rows is updated. By default, it will get the parent scroll pane and call revalidate. Subclass can override it to customize the behavior when number of rows is updated.- Parameters:
oldRow- the previous row count.newRow- the new row count.
-
getMaxRows
public int getMaxRows()
Gets the maximum number of rows that will be displayed. You can set it usingsetMaxRows(int)or passed in using constructor such asAutoResizingTextArea(int, int).- Returns:
- the maximum number of rows that will be displayed.
-
setMaxRows
public void setMaxRows(int maxRows)
Sets the maximum number of rows that will be displayed.- Parameters:
maxRows- The maximum number of rows.
-
getMinRows
public int getMinRows()
Gets the minimum number of rows that will be displayed. You can set it usingsetMinRows(int)or passed in using constructor such asAutoResizingTextArea(int, int).- Returns:
- the minimum number of rows that will be displayed.
-
setMinRows
public void setMinRows(int minRows)
Sets the minimum number of rows that will be displayed- Parameters:
minRows- The minimum number of rows.
-
setDocument
public void setDocument(javax.swing.text.Document doc)
- Overrides:
setDocumentin classjavax.swing.text.JTextComponent
-
getPreferredScrollableViewportSize
public java.awt.Dimension getPreferredScrollableViewportSize()
- Specified by:
getPreferredScrollableViewportSizein interfacejavax.swing.Scrollable- Overrides:
getPreferredScrollableViewportSizein classjavax.swing.JTextArea
-
-