- 所有已实现的接口:
ImageObserver,MenuContainer,Serializable,Accessible,Scrollable
- 已知子类:
JEditorPane,JTextArea,JTextField
JTextComponent 是 swing 文本组件的基类。它试图与 java.awt.TextComponent 类兼容,它可以合理地做到这一点。还提供了其他服务以提供额外的灵活性(除了可插入的 UI 和 bean 支持之外)。您可以在 使用文本组件的一般规则 中找到有关如何使用此类提供的功能的信息,这是 The Java Tutorial. 中的一个部分
- 插入符更改
-
插入符号是 swing 文本组件中的可插入对象。插入符号位置和选择的更改通知将发送到已在文本组件中注册的
CaretListener接口的实现。除非已设置自定义插入符号,否则 UI 将安装默认插入符号。
默认情况下,插入符号跟踪在事件调度线程上执行的所有文档更改,如果插入发生在插入符号位置之前或位置,或者删除发生在插入符号位置之前,则相应地更新它的位置。DefaultCaret试图使自己可见,这可能导致JScrollPane中的文本组件滚动。DefaultCaret.setUpdatePolicy(int)方法可以更改默认插入符号行为。
笔记:不可编辑的文本组件也有一个插入符号,但它可能不会被绘制。 - 命令
-
文本组件提供了许多可用于操作组件的命令。这本质上是组件表达其功能的方式。这些是根据 swing
Action接口表达的,使用TextAction实现。可以使用getActions()方法找到文本组件支持的命令集。这些动作可以绑定到按键事件,从按钮触发等。 - 文本输入
-
文本组件支持灵活和国际化的文本输入,使用keymap和输入方法框架,同时保持与 AWT 监听模型的兼容性。
Keymap允许应用程序将击键绑定到操作。为了允许键映射在多个文本组件之间共享,它们可以使用扩展TextAction的操作。TextAction可以确定哪个JTextComponent最近有焦点,因此是动作的主题(在发送到动作的ActionEvent不包含目标文本组件作为其源的情况下)。输入法框架 允许文本组件与输入法交互,分离预处理事件的软件组件,让用户使用更少的键盘输入数千个不同的字符。
JTextComponent是框架的 active client,因此它实现了与输入法交互的首选用户界面。因此,某些键事件不会到达文本组件,因为它们由输入法处理,并且某些文本输入会作为InputMethodEvent中的提交文本而不是键事件到达文本组件。完整的文本输入是keyTyped按键事件中的字符和输入法事件中提交的文本的组合。AWT 监听模型允许应用程序将事件监听附加到组件,以便将事件绑定到操作。 Swing 鼓励使用键映射而不是监听,但通过让监听有机会通过使用事件来窃取事件来保持与监听的兼容性。
键盘事件和输入方法事件在以下阶段处理,每个阶段都能够消费事件:
键盘和输入方法事件处理的阶段 阶段 KeyEvent InputMethodEvent 1. 输入方法 (在这里生成) 2. 焦点经理 3. 注册的关键听众 注册输入方法监听 4. JTextComponent 中的输入方法处理 5. 使用当前keymap处理keymap 6. JComponent 中的键盘处理(例如加速器、组件导航等) 为了保持与监听按键事件但不知道输入方法事件的应用程序的兼容性,第 4 阶段的输入方法处理为不处理输入方法事件的组件提供了一种兼容模式。对于这些组件,提交的文本将转换为 keyTyped 键事件,并在从第 3 阶段开始的键事件管道中处理,而不是在输入方法事件管道中处理。
默认情况下,该组件将创建一个keymap(命名为DEFAULT_KEYMAP) 由所有 JTextComponent 实例共享作为默认keymap。通常,外观实现会安装一个不同的键映射,该map解析为在不同键map中找不到的那些绑定的默认键映射。最小绑定包括:
- 将内容插入到可打印键的编辑器中。
- 使用退格键和 del 键删除内容。
- 插入符号向前和向后移动
- 模型/视图拆分
-
文本组件具有模型视图拆分。文本组件将用于表示模型、视图和控制器的对象组合在一起。文本文档模型可以被充当模型观察者的其他视图共享(例如,一个文档可以被多个组件共享)。

该模型由
Document接口定义。这是为了提供一种灵活的文本存储机制,可以跟踪编辑过程中的变化,并可以扩展到更复杂的模型。模型接口旨在捕获 SGML 提供的表达能力,SGML 是一种用于表达各种内容的系统。对文档的每次修改都会导致以DocumentEvent的形式将更改的详细信息通知发送给所有观察者,这允许视图与模型保持同步。此事件将发送给已实现DocumentListener接口并对被观察模型感兴趣的观察者。 - 地点信息
-
提供了确定文本在视图中的位置的能力。有两种方法,
modelToView(int)和viewToModel(java.awt.Point)用于确定此信息。 - 撤消/重做支持
-
提供对编辑历史机制的支持以允许撤消/重做操作。默认情况下,文本组件本身不提供历史缓冲区,但确实提供了可以与历史缓冲区结合使用以提供撤消/重做支持的
UndoableEdit记录。支持由 Document 模型提供,它允许附加 UndoableEditListener 实现。 - 线程安全
-
swing 文本组件提供了一些线程安全操作的支持。由于文本组件的高度可配置性,可以规避所提供的保护。保护主要来自模型,因此
AbstractDocument的文档描述了所提供保护的假设。可以安全异步调用的方法标有注释。 - 换行符
- 有关如何处理换行符的讨论,请参阅 DefaultEditorKit。
- 打印支持
-
为基本文档打印提供了几种
print方法。如果需要更高级的打印,请使用getPrintable(java.text.MessageFormat, java.text.MessageFormat)方法。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder 。
- 参见:
-
内部类总结
内部类修饰符和类型类描述class此类实现了对JTextComponent类的辅助功能支持。static final class表示JTextComponent的放置位置。static class用于创建键绑定的绑定记录。在类 javax.swing.JComponent 中声明的嵌套类/接口
JComponent.AccessibleJComponent在类 java.awt.Container 中声明的嵌套类/接口
Container.AccessibleAWTContainer -
字段摘要
字段修饰符和类型Field描述static final String所有JTextComponent实例将共享的默认keymap,除非它们设置了不同的keymap。static final String焦点加速器的绑定属性名称。在类 javax.swing.JComponent 中声明的字段
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW在类 java.awt.Component 中声明的字段
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT在接口 java.awt.image.ImageObserver 中声明的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddCaretListener(CaretListener listener) 添加插入符监听以通知插入符的任何更改。static Keymap将新的键映射添加到键映射层次结构中。voidcopy()将关联文本模型中的当前选定范围传输到系统剪贴板,将内容保留在文本模型中。voidcut()将关联文本模型中的当前选定范围传输到系统剪贴板,从模型中删除内容。protected void通知所有已注册对此事件类型的通知感兴趣的监听。获取与此JTextComponent关联的AccessibleContext。Action[]获取编辑器的命令列表。getCaret()获取允许在视图上进行面向文本的导航的插入符号。获取用于呈现插入符号的当前颜色。返回在此文本组件上注册的所有插入符号监听的数组。int返回文本组件的文本插入符号的位置。获取用于呈现禁用文本的当前颜色。获取与编辑器关联的模型。boolean返回是否启用自动拖动处理。返回此组件在组件上的 DnD 操作期间应直观指示为放置位置的位置,如果当前没有要显示的位置,则返回null。final DropMode返回此组件的放置模式。char返回将导致接收文本组件获得焦点的快捷键。获取负责制作高光的对象。获取输入方法请求处理程序,该处理程序支持来自此组件的输入方法请求。获取当前在此文本组件中处于活动状态的keymap。static Keymap获取先前添加到文档中的命名keymap。返回文本组件的边框与其文本之间的边距。返回NavigationFilter。返回视图组件视口的首选大小。getPrintable(MessageFormat headerFormat, MessageFormat footerFormat) 返回一个Printable用于打印这个JTextComponent的内容。intgetScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) 根据 orientation 的值计算将完全显示一个行或列块的滚动增量。boolean如果视口应始终强制此Scrollable的高度与视口的高度匹配,则返回 true。boolean如果视口应始终强制此Scrollable的宽度与视口的宽度匹配,则返回 true。intgetScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) 显示逻辑行或列的组件应根据 orientation 的值计算将完全显示新行或新列的滚动增量。返回此TextComponent中包含的选定文本。获取用于呈现所选文本的当前颜色。获取用于呈现选择的当前颜色。int返回所选文本的结束位置。int返回所选文本的起始位置。getText()返回此TextComponent中包含的文本。getText(int offs, int len) 获取组件表示的文本的一部分。getToolTipText(MouseEvent event) 返回用作event的工具提示的字符串。getUI()获取此面向文本的编辑器的用户界面工厂。boolean返回指示此TextComponent是否可编辑的boolean。static voidloadKeymap(Keymap map, JTextComponent.KeyBinding[] bindings, Action[] actions) 加载带有一堆绑定的keymap。modelToView(int pos) 已弃用。modelToView2D(int pos) 将模型中的给定位置转换为视图坐标系中的位置。voidmoveCaretPosition(int pos) 将插入符号移动到新位置,留下由上次调用setCaretPosition定义的标记。protected String返回此JTextComponent的字符串表示形式voidpaste()将系统剪贴板的内容传输到关联的文本模型中。booleanprint()显示打印对话框的便捷打印方法,然后在中打印此JTextComponent交互的没有页眉或页脚文本的模式。booleanprint(MessageFormat headerFormat, MessageFormat footerFormat) 显示打印对话框的便捷打印方法,然后在中打印此JTextComponent交互的带有指定页眉和页脚文本的模式。booleanprint(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) 打印此JTextComponent的内容。void从流初始化。voidremoveCaretListener(CaretListener listener) 删除插入符监听。static KeymapremoveKeymap(String nm) 删除以前添加到文档中的命名keymap。voidreplaceSelection(String content) 用给定字符串表示的新内容替换当前选择的内容。protected void恢复以前由saveComposedText保存的组合文本。protected booleansaveComposedText(int pos) 在指定位置周围保存组合文本。voidselect(int selectionStart, int selectionEnd) 选择指定开始和结束位置之间的文本。void选择TextComponent中的所有文本。void设置要使用的插入符号。void设置用于呈现插入符号的当前颜色。voidsetCaretPosition(int position) 为TextComponent设置文本插入符号的位置。void设置用于呈现禁用文本的当前颜色。voidsetDocument(Document doc) 将编辑器与文本文档相关联。voidsetDragEnabled(boolean b) 打开或关闭自动拖动处理。final voidsetDropMode(DropMode dropMode) 设置此组件的放置模式。voidsetEditable(boolean b) 设置指定的boolean以指示此TextComponent是否应可编辑。voidsetFocusAccelerator(char aKey) 设置将导致接收文本组件获得焦点的快捷键。void设置要使用的荧光笔。void设置用于将事件绑定到操作的键映射。void设置文本组件的边框与其文本之间的边距空间。voidsetNavigationFilter(NavigationFilter filter) 设置NavigationFilter。void设置用于呈现所选文本的当前颜色。void设置用于呈现选择的当前颜色。voidsetSelectionEnd(int selectionEnd) 将选择结束设置到指定位置。voidsetSelectionStart(int selectionStart) 将选择开始设置到指定位置。void将此TextComponent的文本设置为指定的文本。void为此面向文本的编辑器设置用户界面工厂。voidupdateUI()重新加载可插入 UI。intviewToModel(Point pt) 已弃用。intviewToModel2D(Point2D pt) 将视图坐标系中的给定位置转换为模型中最近的代表性位置。void将模型的内容存储到给定的流中。在类 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, 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, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update在类 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在类 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
-
字段详细信息
-
FOCUS_ACCELERATOR_KEY
焦点加速器的绑定属性名称。- 参见:
-
DEFAULT_KEYMAP
所有JTextComponent实例将共享的默认keymap,除非它们设置了不同的keymap。- 参见:
-
-
构造方法详细信息
-
JTextComponent
public JTextComponent()创建一个新的JTextComponent。建立插入符号事件的监听器,并安装可插入的 UI。该组件被标记为可编辑。没有使用布局管理器,因为布局是由文本的视图子系统管理的。文档模型设置为null。
-
-
方法详情
-
getUI
获取此面向文本的编辑器的用户界面工厂。- 重写:
getUI在类JComponent中- 返回:
- 工厂
-
setUI
为此面向文本的编辑器设置用户界面工厂。- 参数:
ui- 工厂
-
updateUI
public void updateUI()重新加载可插入 UI。用于获取新接口的密钥是getUIClassID()。 UI 的类型是TextUI。invalidate在设置 UI 后调用。- 重写:
updateUI在类JComponent中- 参见:
-
addCaretListener
添加插入符监听以通知插入符的任何更改。- 参数:
listener- 要添加的监听器- 参见:
-
removeCaretListener
删除插入符监听。- 参数:
listener- 要删除的监听器- 参见:
-
getCaretListeners
返回在此文本组件上注册的所有插入符号监听的数组。- 返回:
-
该组件的所有
CaretListener或一个空数组(如果当前没有注册插入符监听器) - 自从:
- 1.4
- 参见:
-
fireCaretUpdate
通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。监听列表以从后到先的方式处理。- 参数:
e- 事件- 参见:
-
setDocument
@BeanProperty (expert =true, description ="the text document model") public void setDocument(Document doc) 将编辑器与文本文档相关联。当前注册的工厂用于为文档构建视图,在重新生效后由编辑器显示。 PropertyChange 事件(“文档”)被传播到每个监听。- 参数:
doc- 要显示/编辑的文档- 参见:
-
getDocument
获取与编辑器关联的模型。这主要是为了使 UI 达到成为文本编辑器所需的最少状态。子类将返回模型的实际类型,通常是扩展 Document 的东西。- 返回:
- 该模型
-
getActions
获取编辑器的命令列表。这是由编辑器本身支持的命令集合扩充的插件 UI 支持的命令列表。这些对于绑定到事件很有用,例如在键盘map中。- 返回:
- 命令列表
-
setMargin
@BeanProperty (description ="desired space between the border and text area") public void setMargin(Insets m) 设置文本组件的边框与其文本之间的边距空间。文本组件的默认Border对象将使用此值来创建适当的边距。但是,如果在文本组件上设置了非默认边框,则Border对象有责任创建适当的边距空间(否则该属性将被有效地忽略)。这会导致组件重绘。 PropertyChange 事件(“保证金”)被发送到所有监听器。- 参数:
m- 边框和文本之间的空间
-
getMargin
返回文本组件的边框与其文本之间的边距。- 返回:
- 保证金
-
getCaret
获取允许在视图上进行面向文本的导航的插入符号。- 返回:
- 插入符号
-
setCaret
@BeanProperty (expert =true, description ="the caret used to select/navigate") public void setCaret(Caret c) 设置要使用的插入符号。默认情况下,这将由安装的 UI 设置。如果需要,可以将其更改为自定义插入符号。设置插入符号会导致 PropertyChange 事件(“插入符号”)被触发。- 参数:
c- 插入符号- 参见:
-
getHighlighter
获取负责制作高光的对象。- 返回:
- 荧光笔
-
setHighlighter
@BeanProperty (expert =true, description ="object responsible for background highlights") public void setHighlighter(Highlighter h) 设置要使用的荧光笔。默认情况下,这将由安装的 UI 设置。如果需要,可以将其更改为自定义荧光笔。荧光笔可以设置为null以禁用它。安装新荧光笔时会触发 PropertyChange 事件(“荧光笔”)。- 参数:
h- 荧光笔- 参见:
-
setKeymap
@BeanProperty (description ="set of key event to action bindings to use") public void setKeymap(Keymap map) 设置用于将事件绑定到操作的键映射。设置为null有效地禁用键盘输入。安装新的keymap时会触发 PropertyChange 事件(“keymap”)。- 参数:
map- keymap- 参见:
-
setDragEnabled
@BeanProperty (bound =false, description ="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b) 打开或关闭自动拖动处理。为了启用自动拖动处理,此属性应设置为true,组件的TransferHandler需要为non-null。dragEnabled属性的默认值为false。遵守此属性并识别用户拖动手势的工作取决于外观实现,尤其是组件的
TextUI。启用自动拖动处理后,只要用户在选择上按下鼠标按钮然后将鼠标移动几个像素,大多数外观(包括子类BasicLookAndFeel的外观和感觉)都会开始拖放操作。因此,将此属性设置为true会对选择的行为方式产生微妙的影响。如果使用忽略此属性的外观,您仍然可以通过在组件的
TransferHandler上调用exportAsDrag来开始拖放操作。- 参数:
b- 是否启用自动拖动处理- 抛出:
HeadlessException- 如果b是true并且GraphicsEnvironment.isHeadless()返回true- 自从:
- 1.4
- 参见:
-
getDragEnabled
public boolean getDragEnabled()返回是否启用自动拖动处理。- 返回:
dragEnabled属性的值- 自从:
- 1.4
- 参见:
-
setDropMode
设置此组件的放置模式。为了向后兼容,此属性的默认值为DropMode.USE_SELECTION。但是,建议使用DropMode.INSERT以改善用户体验。它提供了在文本位置之间放置的类似行为,但不会影响实际的文本选择和插入符号位置。JTextComponents支持以下放置模式:DropMode.USE_SELECTIONDropMode.INSERT
仅当此组件具有接受丢弃的
TransferHandler时,丢弃模式才有意义。- 参数:
dropMode- 使用的丢弃模式- 抛出:
IllegalArgumentException- 如果丢弃模式不受支持或null- 自从:
- 1.6
- 参见:
-
getDropMode
返回此组件的放置模式。- 返回:
- 该组件的放置模式
- 自从:
- 1.6
- 参见:
-
getDropLocation
返回此组件在组件上的 DnD 操作期间应直观指示为放置位置的位置,如果当前没有要显示的位置,则返回null。此方法不适用于从
TransferHandler查询放置位置,因为放置位置仅在TransferHandler的canImport返回并允许显示位置后设置。当此属性更改时,组件将触发名为“dropLocation”的属性更改事件。
- 返回:
- 下降位置
- 自从:
- 1.6
- 参见:
-
getKeymap
获取当前在此文本组件中处于活动状态的keymap。- 返回:
- keymap
-
addKeymap
将新的键映射添加到键映射层次结构中。键映射绑定自下而上解析,因此子项中指定的属性将重写父项中指定的属性。- 参数:
nm- 键映射的名称(在文档中的命名键映射集合中必须是唯一的);如果键映射未命名,名称可能是null,但调用者负责管理返回的引用,因为无法通过名称获取未命名的键映射parent- 父级keymap;这可能是null如果未指定的绑定不需要在其他一些键map中解析- 返回:
- keymap
-
removeKeymap
删除以前添加到文档中的命名keymap。具有null名称的keymap可能无法以这种方式删除。- 参数:
nm- 要删除的keymap的名称- 返回:
- 删除的键映射
-
getKeymap
获取先前添加到文档中的命名键映射。这不适用于null命名的keymap。- 参数:
nm- keymap的名称- 返回:
- keymap
-
loadKeymap
加载带有一堆绑定的keymap。这可用于获取静态定义表并将它们加载到某个键map中。以下示例说明了将某些键绑定到与 JTextComponent 关联的剪切、复制和粘贴操作的示例。完成此操作的代码片段可能如下所示:
绑定和操作集可以为空,但必须是非static final JTextComponent.KeyBinding[] defaultBindings = { new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK), DefaultEditorKit.copyAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK), DefaultEditorKit.pasteAction), new JTextComponent.KeyBinding( KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK), DefaultEditorKit.cutAction), }; JTextComponent c = new JTextPane(); Keymap k = c.getKeymap(); JTextComponent.loadKeymap(k, defaultBindings, c.getActions());null。- 参数:
map- keymapbindings- 绑定actions- 动作集
-
getCaretColor
获取用于呈现插入符号的当前颜色。- 返回:
- 颜色
-
setCaretColor
@BeanProperty (preferred =true, description ="the color used to render the caret") public void setCaretColor(Color c) 设置用于呈现插入符号的当前颜色。设置为null可有效恢复默认颜色。设置颜色会触发 PropertyChange 事件(“caretColor”)。- 参数:
c- 颜色- 参见:
-
getSelectionColor
获取用于呈现选择的当前颜色。- 返回:
- 颜色
-
setSelectionColor
@BeanProperty (preferred =true, description ="color used to render selection background") public void setSelectionColor(Color c) 设置用于呈现选择的当前颜色。将颜色设置为null与设置Color.white相同。设置颜色会导致 PropertyChange 事件(“selectionColor”)。- 参数:
c- 颜色- 参见:
-
getSelectedTextColor
获取用于呈现所选文本的当前颜色。- 返回:
- 颜色
-
setSelectedTextColor
@BeanProperty (preferred =true, description ="color used to render selected text") public void setSelectedTextColor(Color c) 设置用于呈现所选文本的当前颜色。将颜色设置为null与Color.black相同。设置颜色会触发 PropertyChange 事件(“selectedTextColor”)。- 参数:
c- 颜色- 参见:
-
getDisabledTextColor
获取用于呈现禁用文本的当前颜色。- 返回:
- 颜色
-
setDisabledTextColor
@BeanProperty (preferred =true, description ="color used to render disabled text") public void setDisabledTextColor(Color c) 设置用于呈现禁用文本的当前颜色。设置颜色会触发 PropertyChange 事件(“disabledTextColor”)。- 参数:
c- 颜色- 参见:
-
replaceSelection
用给定字符串表示的新内容替换当前选择的内容。如果没有选择,这相当于给定文本的插入。如果没有替换文本,这相当于删除当前选择。这是操作的默认实现使用的方法,用于插入绑定到键map操作的内容。
- 参数:
content- 用来替换选择的内容
-
getText
获取组件表示的文本的一部分。如果长度为 0,则返回空字符串。- 参数:
offs- 偏移量≥ 0len- 长度≥ 0- 返回:
- 文本
- 抛出:
BadLocationException- 如果偏移量或长度无效
-
modelToView
已弃用。将模型中的给定位置转换为视图坐标系中的位置。组件必须具有正尺寸才能计算此平移(即在组件尺寸确定之前无法计算布局)。该组件不必是可见的或绘制的。- 参数:
pos- 位置 ≥ 0- 返回:
- 作为矩形的坐标,使用 (rx, ry) 作为坐标系中的位置,如果组件还没有正尺寸,则为 null。
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置- 参见:
-
modelToView2D
将模型中的给定位置转换为视图坐标系中的位置。组件必须具有正尺寸才能计算此平移(即在组件尺寸确定之前无法计算布局)。该组件不必是可见的或绘制的。- 参数:
pos- 位置>= 0- 返回:
- 作为矩形的坐标,使用 (rx, ry) 作为坐标系中的位置,如果组件还没有正尺寸,则为 null。
- 抛出:
BadLocationException- 如果给定位置不代表相关文档中的有效位置- 自从:
- 9
- 参见:
-
viewToModel
已弃用。将视图坐标系中的给定位置转换为模型中最近的代表性位置。组件必须具有正尺寸才能计算此平移(即在组件尺寸确定之前无法计算布局)。该组件不必是可见的或绘制的。- 参数:
pt- 视图中要翻译的位置- 返回:
- 从文档开始的偏移量 ≥ 0,如果组件还没有正大小,则为 -1。
- 参见:
-
viewToModel2D
将视图坐标系中的给定位置转换为模型中最近的代表性位置。组件必须具有正尺寸才能计算此平移(即在组件尺寸确定之前无法计算布局)。该组件不必是可见的或绘制的。- 参数:
pt- 视图中要翻译的位置- 返回:
-
文档开头的偏移量
>= 0,如果组件还没有正大小,则为-1。 - 自从:
- 9
- 参见:
-
cut
public void cut()将关联文本模型中的当前选定范围传输到系统剪贴板,从模型中删除内容。当前选择被重置。对null选择不做任何事情。- 参见:
-
copy
public void copy()将关联文本模型中的当前选定范围传输到系统剪贴板,将内容保留在文本模型中。当前选择保持不变。对null选择不做任何事情。- 参见:
-
paste
public void paste()将系统剪贴板的内容传输到关联的文本模型中。如果关联视图中有一个选择,它将被剪贴板的内容替换。如果没有选择,剪贴板内容将插入到关联视图中当前插入位置的前面。如果剪贴板是空的,什么都不做。- 参见:
-
moveCaretPosition
public void moveCaretPosition(int pos) 将插入符号移动到新位置,留下由上次调用setCaretPosition定义的标记。这形成了一个选择。如果文档是null,什么都不做。该位置必须介于 0 和组件文本的长度之间,否则会抛出异常。- 参数:
pos- 位置- 抛出:
IllegalArgumentException- 如果为position提供的值小于零或大于组件的文本长度- 参见:
-
setFocusAccelerator
@BeanProperty (description ="accelerator character used to grab focus") public void setFocusAccelerator(char aKey) 设置将导致接收文本组件获得焦点的快捷键。加速器将是特定于平台的修饰键和给定字符(转换为大写)的组合键。例如,ALT 键在 Windows 上用作修饰符,而 CTRL+ALT 组合键在 Mac 上使用。默认情况下,没有焦点加速键。任何以前的快捷键设置都将被取代。 '\0' 键设置将被注册,并具有关闭焦点加速器的效果。设置新键后,将触发 PropertyChange 事件 (FOCUS_ACCELERATOR_KEY)。- 参数:
aKey- 钥匙- 参见:
-
getFocusAccelerator
public char getFocusAccelerator()返回将导致接收文本组件获得焦点的快捷键。如果没有设置焦点加速器,则返回 '\0'。- 返回:
- 钥匙
-
read
从流初始化。这将创建一个适合组件类型的模型,并从流中初始化模型。默认情况下,这会将模型加载为纯文本。模型的先前内容将被丢弃。- 参数:
in- 要读取的流desc- 描述流的对象;这可能是一个字符串、一个文件、一个 URL 等。某些类型的文档(例如 html)可能能够利用此信息;如果非null,则将其添加为文档的属性- 抛出:
IOException- 由用于初始化的流抛出- 参见:
-
write
将模型的内容存储到给定的流中。默认情况下,这会将模型存储为纯文本。- 参数:
out- 输出流- 抛出:
IOException- 出现任何 I/O 错误
-
setCaretPosition
@BeanProperty (bound =false, description ="the caret position") public void setCaretPosition(int position) 为TextComponent设置文本插入符号的位置。请注意,插入符号轨道会发生变化,因此如果组件的基础文本发生变化,它可能会移动。如果文档是null,什么都不做。该位置必须介于 0 和组件文本的长度之间,否则会抛出异常。- 参数:
position- 位置- 抛出:
IllegalArgumentException- 如果为position提供的值小于零或大于组件的文本长度
-
getCaretPosition
public int getCaretPosition()返回文本组件的文本插入符号的位置。- 返回:
- 文本组件的文本插入符号的位置 ≥ 0
-
setText
@BeanProperty (bound =false, description ="the text of this component") public void setText(String t) 将此TextComponent的文本设置为指定的文本。如果文本为null或为空,则具有简单删除旧文本的效果。插入文本后,生成的插入符位置由插入符类的实现决定。请注意,文本不是绑定属性,因此在更改时不会触发
PropertyChangeEvent。要监听文本的更改,请使用DocumentListener。- 参数:
t- 要设置的新文本- 参见:
-
getText
返回此TextComponent中包含的文本。如果底层文档是null,将给出一个NullPointerException。请注意,文本不是绑定属性,因此在更改时不会触发PropertyChangeEvent。要监听文本的更改,请使用DocumentListener。- 返回:
- 文本
- 抛出:
NullPointerException- 如果文档是null- 参见:
-
getSelectedText
返回此TextComponent中包含的选定文本。如果选择是null或文档为空,则返回null。- 返回:
- 文本
- 抛出:
IllegalArgumentException- 如果选择由于某种原因没有有效映射到文档- 参见:
-
isEditable
public boolean isEditable()返回指示此TextComponent是否可编辑的boolean。- 返回:
- boolean
- 参见:
-
setEditable
@BeanProperty (description ="specifies if the text can be edited") public void setEditable(boolean b) 设置指定的boolean以指示此TextComponent是否应可编辑。状态更改时会触发 PropertyChange 事件(“可编辑”)。- 参数:
b- 要设置的boolean- 参见:
-
getSelectionStart
public int getSelectionStart()返回所选文本的起始位置。对于空文档返回 0,如果没有选择则返回点值。- 返回:
- 起始位置≥0
-
setSelectionStart
@BeanProperty (bound =false, description ="starting location of the selection.") public void setSelectionStart(int selectionStart) 将选择开始设置到指定位置。新起点被限制在当前选择结束之前或之前。这可用于向后兼容在
java.awt.TextComponent上调用此方法的代码。这是为了转发到Caret实现,这是维护实际选择的地方。- 参数:
selectionStart- 文本的起始位置 ≥ 0
-
getSelectionEnd
public int getSelectionEnd()返回所选文本的结束位置。如果文档为空则返回 0,如果没有选择则返回 dot 的值。- 返回:
- 结束位置≥0
-
setSelectionEnd
@BeanProperty (bound =false, description ="ending location of the selection.") public void setSelectionEnd(int selectionEnd) 将选择结束设置到指定位置。新的终点被限制在当前选择开始处或之后。这可用于向后兼容在
java.awt.TextComponent上调用此方法的代码。这是为了转发到Caret实现,这是维护实际选择的地方。- 参数:
selectionEnd- 文本的结束位置 ≥ 0
-
select
public void select(int selectionStart, int selectionEnd) 选择指定开始和结束位置之间的文本。此方法设置所选文本的开始和结束位置,强制执行开始位置必须大于或等于零的限制。结束位置必须大于或等于开始位置,且小于或等于文本组件的文本长度。
如果调用者提供不一致或越界的值,该方法会以静默方式强制执行这些约束,不会失败。具体来说,如果开始位置或结束位置大于文本长度,则将其重置为等于文本长度。如果起始位置小于零,则重置为零,如果结束位置小于起始位置,则重置为起始位置。
提供此调用是为了向后兼容。它被路由到对
setCaretPosition的调用,然后是对moveCaretPosition的调用。管理选择的首选方法是直接调用这些方法。- 参数:
selectionStart- 文本的起始位置selectionEnd- 文本的结束位置- 参见:
-
selectAll
public void selectAll()选择TextComponent中的所有文本。对null或空文档不执行任何操作。 -
getToolTipText
返回用作event的工具提示的字符串。这将返回以下之一:- 如果
setToolTipText已使用非null值调用,它将被返回,否则 - 将返回在 UI 上调用
getToolTipText的值。
JTextComponent不会向ToolTipManager注册自己。这意味着除非在ToolTipManager上调用了registerComponent,否则不会从TextUI显示工具提示。- 重写:
getToolTipText在类JComponent中- 参数:
event- 有问题的事件- 返回:
-
用作
event工具提示的字符串 - 参见:
- 如果
-
getPreferredScrollableViewportSize
返回视图组件视口的首选大小。这是为了执行返回组件首选大小的默认行为。- 指定者:
getPreferredScrollableViewportSize在接口Scrollable中- 返回:
JViewport的preferredSize其视图是这个Scrollable- 参见:
-
getScrollableUnitIncrement
显示逻辑行或列的组件应根据 orientation 的值计算将完全显示新行或新列的滚动增量。理想情况下,组件应该通过返回完全暴露项目所需的距离来处理部分暴露的行或列。这个的默认实现是简单地返回 10% 的可见区域。子类很可能能够提供更合理的值。
- 指定者:
getScrollableUnitIncrement在接口Scrollable中- 参数:
visibleRect- 视口内可见的视图区域orientation-SwingConstants.VERTICAL或SwingConstants.HORIZONTALdirection- 小于零向上/向左滚动,大于零向下/向右滚动- 返回:
- 在指定方向滚动的“单位”增量
- 抛出:
IllegalArgumentException- 方向无效- 参见:
-
getScrollableBlockIncrement
根据 orientation 的值计算将完全显示一个行或列块的滚动增量。这个的默认实现是简单地返回可见区域。子类可能会提供更合理的值。
- 指定者:
getScrollableBlockIncrement在接口Scrollable中- 参数:
visibleRect- 视口内可见的视图区域orientation-SwingConstants.VERTICAL或SwingConstants.HORIZONTALdirection- 小于零向上/向左滚动,大于零向下/向右滚动- 返回:
- 在指定方向滚动的“块”增量
- 抛出:
IllegalArgumentException- 方向无效- 参见:
-
getScrollableTracksViewportWidth
如果视口应始终强制此Scrollable的宽度与视口的宽度匹配,则返回 true。例如,支持换行的普通文本视图将在此处返回 true,因为换行在视口右边缘之外消失是不可取的。请注意,为祖先为JScrollPane的Scrollable返回 true 会有效地禁用水平滚动。滚动容器,如
JViewport,将在每次验证时使用此方法。- 指定者:
getScrollableTracksViewportWidth在接口Scrollable中- 返回:
-
如果视口应强制
Scrollable的宽度与其自身的宽度匹配,则为真
-
getScrollableTracksViewportHeight
如果视口应始终强制此Scrollable的高度与视口的高度匹配,则返回 true。例如,从左到右排列文本的列式文本视图可以通过在此处返回 true 来有效地禁用垂直滚动。滚动容器,如
JViewport,将在每次验证时使用此方法。- 指定者:
getScrollableTracksViewportHeight在接口Scrollable中- 返回:
- 如果视口应该强制 Scrollables 高度匹配它自己的高度,则为 true
-
print
显示打印对话框的便捷打印方法,然后在中打印此JTextComponent交互的没有页眉或页脚文本的模式。注意:此方法会阻塞,直到打印完成。注:在无头模式,将不会显示任何对话框。
此方法调用功能齐全的
print方法来执行打印。- 返回:
true,除非打印被用户取消- 抛出:
PrinterException- 如果打印系统中的错误导致作业中止SecurityException- 如果不允许此线程发起打印作业请求- 自从:
- 1.6
- 参见:
-
print
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException 显示打印对话框的便捷打印方法,然后在中打印此JTextComponent交互的带有指定页眉和页脚文本的模式。注意:此方法会阻塞,直到打印完成。注:在无头模式,将不会显示任何对话框。
此方法调用功能齐全的
print方法来执行打印。- 参数:
headerFormat-MessageFormat中用作标题的文本,或null无标题footerFormat-MessageFormat中用作页脚的文本,或null无页脚- 返回:
true,除非打印被用户取消- 抛出:
PrinterException- 如果打印系统中的错误导致作业中止SecurityException- 如果不允许此线程发起打印作业请求- 自从:
- 1.6
- 参见:
-
print
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) throws PrinterException 打印此JTextComponent的内容。注意:此方法会阻塞,直到打印完成。可以通过提供
MessageFormat参数将页眉和页脚文本添加到输出中。打印代码从格式请求Strings,提供可能包含在格式化字符串中的单个项目:一个Integer表示当前页码。showPrintDialog boolean参数允许您指定是否向用户显示打印对话框。如果是,用户可以使用该对话框更改打印属性甚至取消打印。service允许您为打印对话框提供初始PrintService,或指定PrintService以在未显示对话框时打印到。attributes可用于为打印对话框提供初始值,或在未显示对话框时提供任何需要的属性。attributes可用于控制作业的打印方式,例如双工或者单方面的.interactive boolean参数允许您指定是否执行打印交互的模式。如果为true,则在打印期间会显示一个带有中止选项的进度对话框。这个对话框是模态的当print被调用时事件派发线程和非模态否则。警告: 在事件派发线程有interactive false块all事件,包括重绘,从处理到打印完成。仅在从没有可见 GUI 的应用程序打印时才推荐使用。注:在无头模式、
showPrintDialog和interactive参数将被忽略,并且不会显示任何对话框。此方法可确保
document在打印期间不会发生突变。为了直观地指示它,在打印期间设置setEnabled(false)。此方法使用
getPrintable(java.text.MessageFormat, java.text.MessageFormat)来呈现文档内容。此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 Swing 中的并发 了解更多信息。
示例用法.此代码片段显示跨平台打印对话框,然后在中打印
JTextComponent交互的模式,除非用户取消对话框:textComponent.print(new MessageFormat("My text component header"), new MessageFormat("Footer. Page - {0}"), true, null, null, true);执行这段代码事件派发线程执行打印背景.以下模式可用于背景打印:
FutureTask<Boolean> future = new FutureTask<Boolean>( new Callable<Boolean>() { public Boolean call() { return textComponent.print(.....); } }); executor.execute(future);- 参数:
headerFormat-MessageFormat中用作标题的文本,或null无标题footerFormat-MessageFormat中用作页脚的文本,或null无页脚showPrintDialog-true显示打印对话框,false否则service- 初始值PrintService或默认值nullattributes- 要应用于打印作业的作业属性,或null无interactive- 是否以交互模式打印- 返回:
true,除非打印被用户取消- 抛出:
PrinterException- 如果打印系统中的错误导致作业中止SecurityException- 如果不允许此线程发起打印作业请求- 自从:
- 1.6
- 参见:
-
getPrintable
返回一个Printable用于打印这个JTextComponent的内容。返回的Printable打印文档在屏幕上的样子,除了重新格式化以适合纸张。返回的Printable可以包装在另一个Printable中,以创建复杂的报告和文档。返回的
Printable与此JTextComponent共享document。开发人员有责任确保在使用此Printable时document不发生突变。当document在打印期间发生突变时,打印行为未定义。可以通过提供
MessageFormat参数将页眉和页脚文本添加到输出中。打印代码从格式请求Strings,提供可能包含在格式化字符串中的单个项目:一个Integer表示当前页码。打印时返回的
Printable会根据页面大小适当地格式化文档内容。为了正确换行,所有页面的imageable width必须相同。参见PageFormat.getImageableWidth()。此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 Swing 中的并发 了解更多信息。
返回的
Printable可以在任何线程上打印。此实现返回
Printable执行所有绘画事件派发线程,不管它用在什么线程上。- 参数:
headerFormat-MessageFormat中用作标题的文本,或null无标题footerFormat-MessageFormat中用作页脚的文本,或null无页脚- 返回:
Printable用于打印此JTextComponent的内容- 自从:
- 1.6
- 参见:
-
getAccessibleContext
获取与此JTextComponent关联的AccessibleContext。对于文本组件,AccessibleContext采用AccessibleJTextComponent的形式。如有必要,将创建一个新的AccessibleJTextComponent实例。- 指定者:
getAccessibleContext在接口Accessible中- 重写:
getAccessibleContext在类Component中- 返回:
-
一个
AccessibleJTextComponent作为这个JTextComponent的AccessibleContext
-
paramString
返回此JTextComponent的字符串表示形式。此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但可能不是null。覆盖
paramString以提供有关 JFC 组件的特定新方面的信息。- 重写:
paramString在类JComponent中- 返回:
-
这个
JTextComponent的字符串表示
-
getInputMethodRequests
从类复制的描述:Component获取输入法请求处理程序,该处理程序支持来自此组件的输入法请求。支持现场文本输入的组件必须覆盖此方法以返回一个InputMethodRequests实例。同时,它还要处理输入法事件。- 重写:
getInputMethodRequests在类Component中- 返回:
-
该组件的输入法请求处理程序,默认为
null - 参见:
-
saveComposedText
protected boolean saveComposedText(int pos) 在指定位置周围保存组合文本。指定位置周围的组合文本(如果有)将保存在后备存储中并从文档中删除。- 参数:
pos- 用于识别组合文本位置的文档位置- 返回:
true如果组合文本存在并保存,false否则- 自从:
- 1.7
- 参见:
-
restoreComposedText
protected void restoreComposedText()恢复以前由saveComposedText保存的组合文本。保存的组合文本被插入回文档中。仅当saveComposedText返回true时才应调用此方法。- 自从:
- 1.7
- 参见:
-
modelToView2D(int)