# Text Component API

> 原文： [https://docs.oracle.com/javase/tutorial/uiswing/components/textapi.html](https://docs.oracle.com/javase/tutorial/uiswing/components/textapi.html)

本节列出了文本组件共享的 API 的常用部分。大部分 API 由 [`JTextComponent`](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html) 类定义。 [文本组件功能](generaltext.html)讨论了如何使用某些 API。

[JComponent 类](jcomponent.html)描述了文本组件从`JComponent`继承的 API。有关与特定文本组件相关的 API 的信息，请参阅该组件的操作方法页面：[文本字段](textfield.html)，[密码字段](passwordfield.html)，[格式化文本字段](formattedtextfield.html)，[文本区](textarea.html)，或[编辑器窗格和文本窗格](editorpane.html)。

有关文本 API 的完整详细信息，请参阅 [`JTextComponent`](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html) 的 API 文档以及[文本包](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/package-summary.html)中的各种类和接口。

本节中列出的 API 包括以下类别：

*   [设置属性](#appearance)
*   [操纵选择](#selection)
*   [转换模型和视图之间的位置](#conversions)
*   [文本编辑命令](#apiforcommands)
*   [代表文件的类和接口](#docclasses)
*   [使用文件](#docmethods)
*   [操纵护符和选择荧光笔](#carrots)
*   [阅读和写作文本](#io)

<caption></caption>
| 方法 | 描述 |
| --- | --- |
| [void setEditable（boolean）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setEditable-boolean-)
[boolean isEditable（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#isEditable--) | 设置或指示用户是否可以编辑文本组件中的文本。 |
| [void setDragEnabled（boolean）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setDragEnabled-boolean-)
[boolean getDragEnabled（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getDragEnabled--) | 设置或获取`dragEnabled`属性，该属性必须为 true 才能在此组件上启用拖动处理。默认值为 false。有关详细信息，请参阅[拖放和数据传输](../dnd/index.html)。 |
| [void setDisabledTextColor（Color）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setDisabledTextColor-java.awt.Color-)
[Color getDisabledTextColor（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getDisabledTextColor--) | 设置或获取用于在禁用文本组件时显示文本的颜色。 |
| [void setMargin（Insets）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setMargin-java.awt.Insets-)
[Insets getMargin（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getMargin--) | 设置或获取文本和文本组件边框之间的边距。 |

<caption>
_These methods are defined in the `JTextComponent` class._</caption>
| 方法 | 描述 |
| --- | --- |
| [String getSelectedText（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getSelectedText--) | 获取当前选定的文本。 |
| [void selectAll（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#selectAll--)
[void select（int，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#select-int-int-) | 选择所有文本或选择开始和结束范围内的文本。 |
| [void setSelectionStart（int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setSelectionStart-int-)
[void setSelectionEnd（int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setSelectionEnd-int-)
[int getSelectionStart（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getSelectionStart--)
[int getSelectionEnd（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getSelectionEnd--) | 按索引设置或获取当前选择的范围。 |
| [void setSelectedTextColor（Color）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setSelectedTextColor-java.awt.Color-)
[Color getSelectedTextColor（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getSelectedTextColor--) | 设置或获取所选文本的颜色。 |
| [void setSelectionColor（Color）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setSelectionColor-java.awt.Color-)
[Color getSelectionColor（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getSelectionColor--) | 设置或获取所选文本的背景颜色。 |

<caption>
_These methods are defined in the `JTextComponent` class._</caption>
| 方法 | 描述 |
| --- | --- |
| [int viewToModel（Point）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#viewToModel-java.awt.Point-) | 将视图坐标系中的指定点转换为文本中的位置。 |
| [Rectangle modelToView（int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#modelToView-int-) | 将文本中的指定位置转换为视图坐标系中的矩形。 |

<caption></caption>
| 类或方法 | 描述 |
| --- | --- |
| [void cut（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#cut--)
[void copy（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#copy--)
[void paste（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#paste--)
[void replaceSelection（String）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#replaceSelection-java.lang.String-)
_（在`JTextComponent`中）_ | 使用系统剪贴板剪切，复制和粘贴文本，或者分别用参数指定的字符串替换所选文本。 |
| [EditorKit](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/EditorKit.html) | 提供文本组件的视图工厂，文档，插入符和操作，以及读取和写入特定格式的文档。 |
| [DefaultEditorKit](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.html) | `EditorKit`的具体子类，提供基本的文本编辑功能。 |
| [StyledEditorKit](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.html) | `Default EditorKit`的子类，为样式化文本提供额外的编辑功能。 |
| [字符串 _xxxx_ 动作](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.html#field_summary)
_（在`DefaultEditorKit`中）_ | 默认编辑器工具包支持的所有操作的名称。请参阅[将文本操作与菜单和按钮关联](generaltext.html#commands)。 |
| [BeepAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.BeepAction.html)
[CopyAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.CopyAction.html)
[CutAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.CutAction.html)
[DefaultKeyTypedAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.DefaultKeyTypedAction.html)
[InsertBreakAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.InsertBreakAction.html)
[InsertContentAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.InsertContentAction.html)
[InsertTabAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.InsertTabAction.html)
[PasteAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultEditorKit.PasteAction.html)
_（`DefaultEditorKit`）_ | 实现各种文本编辑命令的内部类。 |
| [AlignmentAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.AlignmentAction.html)
[BoldAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.BoldAction.html)
[FontFamilyAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.FontFamilyAction.html)
[FontSizeAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.FontSizeAction.html)
[ForegroundAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.ForegroundAction.html)
[ItalicAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.ItalicAction.html)
[StyledTextAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.StyledTextAction.html)
[UnderlineAction](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledEditorKit.UnderlineAction.html)
_（在`StyledEditorKit`中）_ | 为样式化文本实现各种编辑命令的内部类。 |
| [动作[] getActions（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getActions--)
_（在`JTextComponent`中）_ | 获取此组件支持的操作。如果组件使用了一个操作，则此方法从编辑器工具包中获取操作数组。 |
| [InputMap getInputMap（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#getInputMap--)
_（在`JComponent`中）_ | 获取将键击绑定到操作的输入映射。请参阅[将文本操作与键划线关联](generaltext.html#bindingkeystrokes)。 |
| [void put（KeyStroke，Object）](https://docs.oracle.com/javase/8/docs/api/javax/swing/InputMap.html#put-javax.swing.KeyStroke-java.lang.Object-)
_（在`InputMap`中）_ | 将指定的键绑定到指定的操作。您通常按名称指定操作，标准编辑操作由`DefaultEditorKit.backwardAction`等字符串常量表示。 |

<caption></caption>
| 接口或类 | 描述 |
| --- | --- |
| [文件](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html) | 定义必须由所有文档实现的 API 的接口。 |
| [AbstractDocument](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/AbstractDocument.html) | `Document`接口的抽象超类实现。这是 Swing 文本包提供的所有文档的超类。 |
| [PlainDocument](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/PlainDocument.html) | 实现`Document`接口的类。这是纯文本组件（文本字段，密码字段和文本区域）的默认文档。此外，在加载纯文本或未知格式的文本时，编辑器窗格和文本窗格使用此类。 |
| [StyledDocument](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/StyledDocument.html) | 一个`Document`子接口。定义必须由支持样式文本的文档实现的 API。 `JTextPane`要求其文件属于此类型。 |
| [DefaultStyledDocument](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultStyledDocument.html) | 实现`StyledDocument`接口的类。 `JTextPane`的默认文档。 |

<caption></caption>
| 类或方法 | 描述 |
| --- | --- |
| [DocumentFilter](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DocumentFilter.html) | 所有文档过滤器的超类。您可以使用文档过滤器来更改从文档中插入或删除的内容，而无需自己实现文档。参见[实现文件过滤器](generaltext.html#filter)。 |
| [void setDocumentFilter（DocumentFilter）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/AbstractDocument.html#setDocumentFilter-javax.swing.text.DocumentFilter-)
_（在`AbstractDocument`中）_ | 设置文档过滤器。 |
| [void setDocument（Document）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setDocument-javax.swing.text.Document-)
[Document getDocument（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getDocument--)
_（在`JTextComponent`中）_ | 设置或获取文本组件的文档。 |
| [文件 createDefaultModel（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextField.html#createDefaultModel--)
_（在`JTextField`中）_ | 创建默认的 PlainDocument 模型。重写此方法以创建自定义文档而不是默认`PlainDocument`。 |
| [void addDocumentListener（DocumentListener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#addDocumentListener-javax.swing.event.DocumentListener-)
[void removeDocumentListener（DocumentListener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#removeDocumentListener-javax.swing.event.DocumentListener-)
_（在`Document`中）_ | 添加或删除文档侦听器。请参阅[聆听文档的更改](generaltext.html#doclisteners)。 |
| [void addUndoableEditListener（UndoableEditListener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#addUndoableEditListener-javax.swing.event.UndoableEditListener-)
[void removeUndoableEditListener（UndoableEditlistener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#removeUndoableEditListener-javax.swing.event.UndoableEditListener-)
_（在`Document`中）_ | 添加或删除可撤消的编辑侦听器。在[实现撤消和重做](generaltext.html#undo)中使用了可撤消的编辑侦听器。 |
| [int getLength（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#getLength--)
[位置 getStartPosition（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#getStartPosition--)
[位置 getEndPosition（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#getEndPosition--)
[String getText（int，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#getText-int-int-)
_（在`Document`中）_ | `Document`方法返回有关文档的各种描述性信息。 |
| [对象 getProperty（对象）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#getProperty-java.lang.Object-)
[void putProperty（对象，对象）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Document.html#putProperty-java.lang.Object-java.lang.Object-)
_（在`Document`中）_
[void setDocumentProperties （字典）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/AbstractDocument.html#setDocumentProperties-java.util.Dictionary-)
[字典 getDocumentProperties（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/AbstractDocument.html#getDocumentProperties--)
_（`AbstractDocument`）_ | `Document`维护一组可以使用这些方法操作的属性。 |

<caption>
_These methods are defined in the `JTextComponent` class._</caption>
| 接口，类或方法 | 描述 |
| --- | --- |
| [Caret](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Caret.html) | 一个接口，用于为表示文档中插入点的对象定义 API。 |
| [DefaultCaret](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultCaret.html) | 所有文本组件使用的默认插入符号。 |
| [void setCaret（Caret）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setCaret-javax.swing.text.Caret-)
[Caret getCaret（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getCaret--) | 设置或获取文本组件使用的插入符对象。 |
| [void setCaretColor（Color）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setCaretColor-java.awt.Color-)
[Color getCaretColor（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getCaretColor--) | 设置或获取插入符号的颜色。 |
| [void setCaretPosition（int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setCaretPosition-int-)
[void moveCaretPosition（int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#moveCaretPosition-int-)
[int getCaretPosition（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getCaretPosition--) | 设置或获取文档中插入符号的当前位置。 |
| [void addCaretListener（CaretListener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#addCaretListener-javax.swing.event.CaretListener-)
[void removeCaretListener（CaretListener）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#removeCaretListener-javax.swing.event.CaretListener-) | 从文本组件添加或删除插入侦听器。 |
| [NavigationFilter](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/NavigationFilter.html) | 所有导航过滤器的超类。导航过滤器允许您修改即将发生的文本组件的插入符更改。 |
| [void setNavigationFilter（NavigationFilter）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setNavigationFilter-javax.swing.text.NavigationFilter-) | 将导航过滤器附加到文本组件。 |
| [荧光笔](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/Highlighter.html) | 一个接口，用于定义用于突出显示当前选择的对象的 API。 |
| [DefaultHighlighter](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/DefaultHighlighter.html) | 所有文本组件使用的默认突出显示器。 |
| [void setHighlighter（荧光笔）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#setHighlighter-javax.swing.text.Highlighter-)
[荧光笔 getHighlighter（）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#getHighlighter--) | 设置或获取文本组件使用的突出显示器。 |

<caption></caption>
| 方法 | 描述 |
| --- | --- |
| [void read（Reader，Object）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#read-java.io.Reader-java.lang.Object-)
[void write（Writer）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#write-java.io.Writer-)
_（在`JTextComponent`中）_ | 读取或写入文本。 |
| [void read（Reader，Document，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/EditorKit.html#read-java.io.Reader-javax.swing.text.Document-int-)
[void read（InputStream，Document，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/EditorKit.html#read-java.io.InputStream-javax.swing.text.Document-int-)
_（在`EditorKit`中）_ | 将文本从流中读取到文档中。 |
| [void write（Writer，Document，int，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/EditorKit.html#write-java.io.Writer-javax.swing.text.Document-int-int-)
[void write（OutputStream，Document，int，int）](https://docs.oracle.com/javase/8/docs/api/javax/swing/text/EditorKit.html#write-java.io.OutputStream-javax.swing.text.Document-int-int-)
_（在`EditorKit`中）_ | 将文本中的文本写入流。 |