- 所有已实现的接口:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
JTextArea
是一个显示纯文本的多行区域。它旨在是一个轻量级组件,可以在可以合理做到的情况下提供与java.awt.TextArea
类的源兼容性。您可以在使用文本组件中找到有关所有文本组件的信息和示例,这是Java教程中的一个部分。
这个组件具有java.awt.TextArea
类中找不到的功能。应该查阅超类以获取额外的功能。具有更多功能的替代多行文本类包括JTextPane
和JEditorPane
。
java.awt.TextArea
在内部处理滚动。JTextArea
不同之处在于它不管理滚动,而是实现了swing的Scrollable
接口。这使得如果需要滚动行为,则可以将其放置在JScrollPane
中,并且如果不需要滚动,则可以直接使用它。
java.awt.TextArea
具有执行换行的能力。这是由水平滚动策略控制的。由于JTextArea
不直接执行滚动,因此必须以另一种方式提供向后兼容性。 JTextArea
具有用于控制是否换行的绑定属性。默认情况下,换行属性设置为false(不换行)。
java.awt.TextArea
有两个属性rows
和columns
,用于确定首选大小。当将JTextArea
放置在JScrollPane
中以匹配java.awt.TextArea
提供的功能时,JTextArea
使用这些属性来指示视口的首选大小。 JTextArea
的首选大小是显示所有文本所需的大小,以便在JScrollPane
内部正常工作。如果rows
或columns
的值等于零,则沿着该轴的首选大小用于视口沿着相同轴的首选大小。
java.awt.TextArea
可以通过为TextEvent
添加TextListener
来监视更改。在基于JTextComponent
的组件中,更改是通过从模型通过DocumentEvent
到DocumentListeners
广播的。如果需要,DocumentEvent
会提供更改的位置和更改的类型。代码片段可能如下所示:
DocumentListener myListener = ??; JTextArea myArea = ??; myArea.getDocument().addDocumentListener(myListener);
- 换行符
- 有关如何处理换行符的讨论,请参见DefaultEditorKit。
警告: Swing不是线程安全的。有关更多信息,请参见Swing的线程策略。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间进行RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans
包中。请参见XMLEncoder
。
- 自从:
- 1.2
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
该类为JTextArea
类实现了辅助功能支持。Nested classes/interfaces declared in class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
Nested classes/interfaces declared in class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields declared in class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
Fields declared in class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorDescription构造一个新的TextArea。JTextArea
(int rows, int columns) 构造一个具有指定行数和列数的新的空TextArea。构造一个显示指定文本的新的TextArea。构造一个显示指定文本和行数以及列数的新的TextArea。使用给定的文档模型构造一个新的JTextArea,并为所有其他参数(null、0、0)设置默认值。使用指定的行数和列数以及给定的模型构造一个新的JTextArea。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
将给定的文本附加到文档的末尾。protected Document
创建要在构造时使用的模型的默认实现(如果没有显式给出)。获取与此JTextArea关联的AccessibleContext。int
返回TextArea中的列数。protected int
获取列宽。int
确定区域中包含的行数。int
getLineEndOffset
(int line) 确定给定行的末尾的偏移量。int
getLineOfOffset
(int offset) 将偏移量转换为组件文本中的行号。int
getLineStartOffset
(int line) 确定给定行的开始的偏移量。boolean
获取文本区域的换行策略。如果此组件嵌入在JScrollPane中,则返回视口的首选大小。返回TextArea的首选大小。protected int
定义行高的含义。int
getRows()
返回TextArea中的行数。boolean
如果视口应始终强制此Scrollable的宽度与视口的宽度匹配,则返回true。int
getScrollableUnitIncrement
(Rectangle visibleRect, int orientation, int direction) 显示逻辑行或列的组件应计算滚动增量,以完全显示一个新行或列,具体取决于方向的值。int
获取用于扩展制表符的字符数。返回UI的类ID。boolean
获取文本区域换行时使用的包装样式。void
在指定位置插入指定的文本。protected String
返回此JTextArea的字符串表示形式。void
replaceRange
(String str, int start, int end) 用新指定的文本替换指定开始到结束位置的文本。void
setColumns
(int columns) 设置此TextArea的列数。void
设置当前字体。void
setLineWrap
(boolean wrap) 设置文本区域的换行策略。void
setRows
(int rows) 设置此TextArea的行数。void
setTabSize
(int size) 设置用于扩展制表符的字符数。void
setWrapStyleWord
(boolean word) 设置文本区域换行时使用的包装样式。Methods declared in class javax.swing.text.JTextComponent
addCaretListener, 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, read, removeCaretListener, removeKeymap, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, viewToModel2D, write
Methods declared in class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, removeNotify, 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 declared in 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 declared in 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, 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, 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
-
Constructor Details
-
JTextArea
public JTextArea()构造一个新的TextArea。设置默认模型,初始字符串为null,行/列设置为0。 -
JTextArea
构造一个显示指定文本的新的空TextArea。创建默认模型,行/列设置为0。- 参数:
-
text
- 要显示的文本,或null
-
JTextArea
public JTextArea(int rows, int columns) 构造一个具有指定行数和列数的新的空TextArea。创建默认模型,初始字符串为null。- 参数:
-
rows
- 行数 >= 0 -
columns
- 列数 >= 0 - 抛出:
-
IllegalArgumentException
- 如果行数或列数参数为负数。
-
JTextArea
构造一个显示指定文本和行数以及列数的新的TextArea。创建默认模型。- 参数:
-
text
- 要显示的文本,或null -
rows
- 行数 >= 0 -
columns
- 列数 >= 0 - 抛出:
-
IllegalArgumentException
- 如果行数或列数参数为负数。
-
JTextArea
使用给定的文档模型构造一个新的JTextArea,并为所有其他参数(null、0、0)设置默认值。- 参数:
-
doc
- 要使用的模型
-
JTextArea
使用指定的行数和列数以及给定的模型构造一个新的JTextArea。所有构造函数都通过这个构造函数。- 参数:
-
doc
- 要使用的模型,如果为null则创建一个默认模型 -
text
- 要显示的文本,如果没有则为null -
rows
- 行数 >= 0 -
columns
- 列数 >= 0 - 抛出:
-
IllegalArgumentException
- 如果行数或列数参数为负数。
-
-
Method Details
-
getUIClassID
返回UI的类ID。- 覆盖:
-
getUIClassID
在类JComponent
中 - 返回:
- 字符串"TextAreaUI"
- 参见:
-
createDefaultModel
创建要在构造时使用的模型的默认实现。返回一个新的PlainDocument实例。- 返回:
- 默认文档模型
-
setTabSize
@BeanProperty(preferred=true, description="the number of characters to expand tabs to") public void setTabSize(int size) 设置要扩展制表符的字符数。这将乘以可变宽度字体的最大前进。当制表符大小更改时,将触发PropertyChange事件("tabSize")。- 参数:
-
size
- 要扩展到的字符数 - 参见:
-
getTabSize
public int getTabSize()获取用于扩展制表符的字符数。如果文档为null或没有制表符设置,则返回默认值8。- 返回:
- 字符数
-
setLineWrap
@BeanProperty(preferred=true, description="should lines be wrapped") public void setLineWrap(boolean wrap) 设置文本区域的换行策略。如果设置为true,则如果行太长而无法适应分配的宽度,则将换行。如果设置为false,则行将始终不换行。在更改策略时会触发PropertyChange
事件("lineWrap")。默认情况下,此属性为false。- 参数:
-
wrap
- 指示是否应换行 - 参见:
-
getLineWrap
public boolean getLineWrap()获取文本区域的换行策略。如果设置为true,则如果行太长而无法适应分配的宽度,则将换行。如果设置为false,则行将始终不换行。- 返回:
- 如果行将换行
-
setWrapStyleWord
@BeanProperty(description="should wrapping occur at word boundaries") public void setWrapStyleWord(boolean word) 设置文本区域在换行时使用的换行样式。如果设置为true,则如果行太长而无法适应分配的宽度,则将在单词边界(空格)处换行。如果设置为false,则行将在字符边界处换行。默认情况下,此属性为false。- 参数:
-
word
- 指示是否应使用单词边界进行换行 - 参见:
-
getWrapStyleWord
public boolean getWrapStyleWord()获取文本区域在换行时使用的换行样式。如果设置为true,则如果行太长而无法适应分配的宽度,则将在单词边界(即空格)处换行。如果设置为false,则行将在字符边界处换行。- 返回:
- 如果换行样式应为单词边界而不是字符边界
- 参见:
-
getLineOfOffset
将偏移量转换为组件文本中的行号。- 参数:
-
offset
- 偏移量 >= 0 - 返回:
- 行号 >= 0
- 抛出:
-
BadLocationException
- 如果偏移量小于零或大于文档长度。
-
getLineCount
确定区域中包含的行数。- 返回:
- 行数 > 0
-
getLineStartOffset
确定给定行的起始偏移量。- 参数:
-
line
- 要转换的行号 >= 0 - 返回:
- 偏移量 >= 0
- 抛出:
-
BadLocationException
- 如果行号小于零或大于等于文档中包含的行数(由getLineCount报告)。
-
getLineEndOffset
确定给定行的结束偏移量。- 参数:
-
line
- 行号 >= 0 - 返回:
- 偏移量 >= 0
- 抛出:
-
BadLocationException
- 如果行号小于零或大于等于文档中包含的行数(由getLineCount报告)。
-
insert
在指定位置插入指定的文本。如果模型为null或文本为null或空,则不执行任何操作。- 参数:
-
str
- 要插入的文本 -
pos
- 要插入的位置 >= 0 - 抛出:
-
IllegalArgumentException
- 如果pos是模型中的无效位置 - 参见:
-
append
将给定文本追加到文档的末尾。如果模型为null或字符串为null或空,则不执行任何操作。- 参数:
-
str
- 要插入的文本 - 参见:
-
replaceRange
用新指定的文本替换指定起始和结束位置的文本。如果模型为null,则不执行任何操作。如果新字符串为null或空,则仅执行删除操作。- 参数:
-
str
- 用作替换的文本 -
start
- 起始位置 >= 0 -
end
- 结束位置 >= start - 抛出:
-
IllegalArgumentException
- 如果范围的某部分是模型中的无效位置 - 参见:
-
getRows
public int getRows()返回TextArea中的行数。- 返回:
- 行数 >= 0
-
setRows
@BeanProperty(bound=false, description="the number of rows preferred for display") public void setRows(int rows) 为此TextArea设置行数。设置新值后调用invalidate()。- 参数:
-
rows
- 行数 >= 0 - 抛出:
-
IllegalArgumentException
- 如果行数小于0 - 参见:
-
getRowHeight
protected int getRowHeight()定义行高的含义。默认情况下,这是字体的高度。- 返回:
- 高度 >= 1
-
getColumns
public int getColumns()返回TextArea中的列数。- 返回:
- 列数 >= 0
-
setColumns
@BeanProperty(bound=false, description="the number of columns preferred for display") public void setColumns(int columns) 为此TextArea设置列数。设置新值后调用invalidate()。- 参数:
-
columns
- 列数 >= 0 - 抛出:
-
IllegalArgumentException
- 如果列数小于0 - 参见:
-
getColumnWidth
protected int getColumnWidth()获取列宽。对于某些字体,列的含义可以被认为是一个相当弱的概念。此方法用于定义列的宽度。默认情况下,这被定义为所使用字体的字符m的宽度。此方法可以重新定义为某个替代量。- 返回:
- 列宽度 >= 1
-
getPreferredSize
返回TextArea的首选大小。这是显示文本所需的大小和视口请求的大小之间的最大值。- 覆盖:
-
getPreferredSize
在类JComponent
中 - 返回:
- 大小
- 参见:
-
setFont
设置当前字体。这将删除缓存的行高和列宽,以便新字体将被反映,并调用revalidate()。- 覆盖:
-
setFont
在类JComponent
中 - 参数:
-
f
- 用作当前字体的字体 - 参见:
-
paramString
返回此JTextArea的字符串表示形式。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
。- 覆盖:
-
paramString
在类JTextComponent
中 - 返回:
- 此JTextArea的字符串表示形式。
-
getScrollableTracksViewportWidth
如果视口应始终强制此可滚动组件的宽度与视口的宽度匹配,则返回true。如果行换行策略为true,则实现为返回true,如果不换行,则返回false。- 指定者:
-
getScrollableTracksViewportWidth
在接口Scrollable
中 - 覆盖:
-
getScrollableTracksViewportWidth
在类JTextComponent
中 - 返回:
- 如果视口应强制Scrollable的宽度与其自身匹配,则返回true。
-
getPreferredScrollableViewportSize
如果此组件嵌入在JScrollPane中,则返回视口的首选大小。如果已设置所需的列和行设置,则使用它们,否则使用超类行为。- 指定由:
-
getPreferredScrollableViewportSize
在接口Scrollable
- 覆盖:
-
getPreferredScrollableViewportSize
在类JTextComponent
- 返回:
- 此Scrollable视图的JViewport的preferredSize。
- 参见:
-
getScrollableUnitIncrement
显示逻辑行或列的组件应计算滚动增量,以完全显示一个新行或列,具体取决于方向的值。这是实现为使用getRowHeight
和getColumnWidth
方法返回的值。像JScrollPane这样的滚动容器将在每次用户请求单位滚动时使用此方法。
- 指定由:
-
getScrollableUnitIncrement
在接口Scrollable
- 覆盖:
-
getScrollableUnitIncrement
在类JTextComponent
- 参数:
-
visibleRect
- 视口内可见的视图区域 -
orientation
- SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。 -
direction
- 小于零向上/向左滚动,大于零向下/向右滚动。 - 返回:
- 指定方向的“单位”滚动增量
- 抛出:
-
IllegalArgumentException
- 对于无效的方向 - 参见:
-
getAccessibleContext
获取与此JTextArea关联的AccessibleContext。对于JTextArea,AccessibleContext采用AccessibleJTextArea的形式。如有必要,将创建一个新的AccessibleJTextArea实例。- 指定由:
-
getAccessibleContext
在接口Accessible
- 覆盖:
-
getAccessibleContext
在类JTextComponent
- 返回:
- 作为此JTextArea的AccessibleContext的AccessibleJTextArea
-