使用 Literals 组件

本节提供了使用 Swing 文本组件时可能需要的背景信息。如果您打算使用无样式的文本组件(text fieldpassword field格式化文本字段text area),请转到其使用方法页面,并仅在必要时返回此处。如果您打算使用样式化的文本组件,请参见如何使用编辑器窗格和文本窗格,并阅读本节。如果您不知道需要哪个组件,请 continue 阅读。

Swing 文本组件显示文本,并可以选择允许用户编辑文本。程序需要文本组件来执行各种任务,从简单的操作(Importing 单词并按 Enter)到复杂的操作(显示和编辑带有亚洲语言的嵌入式图像的样式化文本)。

Swing 提供了六个文本组件,以及甚至可以满足最复杂的文本要求的支持类和interface。尽管它们的用法和功能不同,但是所有 Swing 文本组件都继承自同一超类JTextComponent,该超类为文本操作提供了高度可配置且强大的基础。

下图显示了JTextComponent层次结构。

Swing 的文本组件层次结构

下图显示了一个名为TextSamplerDemo的应用程序,该应用程序使用每个 Swing 文本组件。

一个提供每个 Swing 文本组件 samples 的应用程序

Try this:

  • 单击启动按钮以使用Java™Web 开始(下载 JDK 7 或更高版本)运行 TextSamplerDemo。另外,要自己编译和运行示例,请查阅example index

  • 在文本字段中 Importing 一些文本,然后按 Enter。在密码字段中执行相同的操作。当您按 Enter 键时,字段下方的标签将更新。

  • try在格式文本字段中 Importing 有效日期和无效日期。请注意,当您按 Enter 键时,仅当日期有效时,字段下方的标签才会更新。

  • 在文本区域和文本窗格中选择并编辑文本。使用键盘绑定 Ctrl-X,Ctrl-C 和 Ctrl-V 分别剪切,复制和粘贴文本。

  • try在编辑器窗格中编辑文本,该文本已通过调用setEditable变为不可编辑。

  • 在文本窗格中查找以找到嵌入式组件和嵌入式图标的示例。

TextSamplerDemo示例以非常基本的方式使用文本组件。下表详细介绍了每种文本组件可以做什么。

GroupDescriptionSwing Classes
Text Controls文本控件也简称为文本字段,只能显示一行可编辑文本。像按钮一样,它们生成动作事件。使用它们可从用户那里获取少量文本信息,并在文本 Importing 完成后执行操作。JTextField及其子类JPasswordFieldJFormattedTextField
纯文本区域JTextArea可以显示多行可编辑的文本。尽管文本区域可以显示任何字体的文本,但是所有文本都使用相同的字体。使用文本区域允许用户 Importing 任意 Long 度的未格式化文本或显示未格式化帮助信息。JTextArea
样式 Literals 区域样式化的文本组件可以使用一种以上的字体显示可编辑的文本。一些样式化的文本组件允许嵌入图像甚至嵌入组件。带样式的文本组件是功能强大的多面组件,适合高端需求,并且比其他文本组件提供了更多的自定义途径。

由于样式文本组件是如此强大和灵活,因此通常需要更多的初始编程来设置和使用。一个 exception 是,编辑器窗格可以轻松地从 URL 加载格式化的文本,这使它们对于显示不可编辑的帮助信息很有用。 JEditorPane
及其子类
JTextPane

本教程提供有关JTextComponent类奠定的基础的信息,并告诉您如何完成一些与文本相关的常见任务。

要了解有关 JavaFX 中文本组件的更多信息,请参阅在 JavaFX 中使用文本和文本效果使用 JavaFX UI 控件:文本字段教程。