Swing 提供两种完全不同的文本组件类型:简单文本控件和风格文本组件。简单文本控件一次只能显示一种字体和-一种颜色,而风格文本组件则可以显示多种字体和颜色。前者有单行文本域(JTextField)、l7令域(JPasswordField)和多行文本域(JTextArea),后者有编辑器窗格(JEditor-Pane)和文本窗格(JTextPane)。
单行文本域和多行文本域编辑纯文本是很有用的。JTextField和JTextArea与它们的AWT对等组件( java. awt. TextField和 java.awt.TextArea)在源代码上几乎是完全兼容的。
用编辑窗格和文本窗格可编辑不同风格文本来显示不同内容。JTextPane类为在文本窗格中显示的内容提供了设置字符和段落属性的方法。文本窗格还能够嵌入组件和图标。JEditorPane和JTextPane没有AWT对等组件。
1、JTextField
JTextField组件显示单行可编辑文本,它只使用一种字体和-种颜色,可以为单行文本域的文本指定水平排列方式(LEFT、CENTER或RIGHT)。
缺省情况下,当单行文本域有焦点时按下Enter键(KeyEvent. VK_ENTER)将引起这个文本域澈发-个动作事件。这种行为与AWT的单行文本域兼容,但与Swing 的缺省按钮不一致(Swing的缺省按钮在按下Enter键时也被激活)。
通过指定单行文本域想要显示的列数可以设置单行文本域的首选宽度。单行文本域的实际宽度通常由布局管理器来设置,因此设置单行文本域的列数并不保证它的实际宽度。
1.1 水平可视性和滚动偏移
JTextField维护一个代表单行文本域水平可视性( horizontal visibility)的范围限定模型。范围限定模型包含有以下属性.: value , minimum , maximum , extent。对单行文本域而言,这个域的可视性value值代表在这个域中显示的文本的滚动偏移。
1.2 布局单行文本域
Swing的单行文本域组件比较简单,易于使用,但很难正确地设置它们的尺寸和位置。本节给出了一个利用复杂的GridBaglayout布局管理器的简单例子。
1.3 使单行文本域有效
单行文本域通常要使输入的数据有效;
2、JPasswordField
Swing的口令域把输人到这个域的字符隐藏起来并显示“* ”。可以在创建口令域之后设置星号为回显字符。
3、JTextArea
Swing的多行文本域(由类JTextArea表示)可以显示多行纯文本,多行文本域被定义为具有一种字体和一种颜色的文本。多行文本域可以在字符或字边界处换行。JTextArea类与java . awt . TextArea类在源代码上几乎是兼容的。
4、JEditorPane
编辑器窗格不仅能够显示多行文本还能够显示不同类型的内容。缺省情况下,编辑器窗格可以显示纯文本、HTML和 RTF文本。编辑器窗格是JEditorPane类的实例,JEditorPane类是JTextComponent 的一个直接扩展。
5、JTextPane
文本窗格(JTextPane类的实例)是Swing文本组件的卡迪拉克。JTextPane扩展JEditorPane,因此,文本窗格继承了显示不同内容类型的能力。JTextPane还增加了两个有意义的功能:嵌入图标和组件并标记具有属性的内容。
5.1 嵌入图标和组件
JTextPane类提供两种插入图标和组件的方法 : insertComponent( Component )和 in-sertIcon( lcon )。
5.2 用属性标记内容
文本窗格有带风格的编辑器工具包,它提供一组设置常用属性的动作,这些属性如黑体、斜体.下划线.删除线等。StyledEditorKit包含一个缺省动作数组,这个数组被添加到来自StyledEdilorKit的超类的动作中。