本教程是针对JDK 8编写的。本页面中描述的示例和实践未利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发行说明,了解有关所有JDK发行版的新功能、增强功能以及已删除或已弃用选项的信息。
本节提供了在使用Swing文本组件时可能需要的背景信息。如果您打算使用非样式化的文本组件 - 如文本字段、密码字段、格式化文本字段或文本区域 - 请转到其操作页面,仅在必要时返回此处。如果您打算使用样式化的文本组件,请参阅《如何使用编辑窗格和文本窗格》,同时阅读本节。如果您不知道需要哪个组件,请继续阅读。
Swing文本组件显示文本并可选择允许用户编辑文本。程序需要文本组件来完成从简单任务(输入一个单词并按下Enter键)到复杂任务(显示和编辑带有嵌入图像的样式化文本,如亚洲语言)。
Swing提供了六个文本组件,以及支持各种复杂文本需求的支持类和接口。尽管它们具有不同的用途和功能,但所有Swing文本组件都继承自相同的超类JTextComponent
,它为文本操作提供了高度可配置和强大的基础。
以下图显示了JTextComponent
的层次结构。
以下图片显示了一个名为TextSamplerDemo
的应用程序,使用了每个Swing文本组件。
setEditable
方法被设置为不可编辑。TextSamplerDemo
示例以非常基本的方式使用文本组件。以下表格告诉您有关每种文本组件的更多信息。
组 | 描述 | Swing 类 |
---|---|---|
文本控件 | 也简称为文本字段,文本控件只能显示一行可编辑的文本。与按钮类似,它们会生成动作事件。您可以使用它们从用户那里获取少量文本信息,并在文本输入完成后执行操作。 | JTextField 及其子类 JPasswordField 和 JFormattedTextField |
普通文本区域 | JTextArea 可以显示多行可编辑的文本。虽然文本区域可以使用任何字体显示文本,但所有文本都是相同的字体。使用文本区域允许用户输入任意长度的未格式化文本或显示未格式化的帮助信息。 |
JTextArea |
样式文本区域 | 样式文本组件可以使用多种字体显示可编辑的文本。某些样式文本组件允许嵌入图像甚至嵌入组件。样式文本组件是功能强大、多面手的组件,适用于高端需求,并提供比其他文本组件更多的自定义途径。
由于它们如此强大和灵活,样式文本组件通常需要更多的初始编程来设置和使用。一个例外是编辑器窗格可以轻松地从 URL 加载格式化文本,这使它们非常适用于显示不可编辑的帮助信息。 |
JEditorPane 及其子类 JTextPane |
本教程提供了关于 JTextComponent
类所奠定的基础的信息,并告诉您如何完成一些常见的与文本相关的任务。
要了解有关 JavaFX 中的文本组件的更多信息,请参阅 在 JavaFX 中使用文本和文本效果 和 使用 JavaFX UI 控件:文本字段 教程。