在AWT中,有两类构件可以用来显示可编辑文本,即TextArea和’TextField。构件TextField所编辑的对象是单行文本,而构件TextArea则是多行文本域,该构件可以作为一个简单的文本编辑器。
1、java.awt.TextComponent
TextField 和TextArea都扩展TextComponent类。TextComponent是单独存在的,其作用是为TextArea 和TextField提供基本的文本编辑能力。
TextComponent提供下面的功能:
- 获取设置文本
- 获取设置选择的文本
- 获取设置编辑模式
- 安置插入符号
方法:
void addNotify() //通过将此组件连接到本机屏幕资源,可以显示此组件。
void addTextListener(TextListener l) //添加指定的文本事件侦听器以从此文本组件接收文本事件。
void enableInputMethods(boolean enable) //启用或禁用此文本组件的输入法支持。
AccessibleContext getAccessibleContext() //获取与此TextComponent关联的AccessibleContext。
Color getBackground() //获取此文本组件的背景颜色。
int getCaretPosition() //返回文本插入插入符的位置。
<T extends EventListener>
T[] getListeners(类<T> listenerType) //返回当前注册的所有对象的数组 FooListener在这个S TextComponent 。
String getSelectedText() //返回此文本组件显示的文本中的选定文本。
int getSelectionEnd() //获取此文本组件中所选文本的结束位置。
int getSelectionStart() //获取此文本组件中所选文本的起始位置。
String getText() //返回此文本组件显示的文本。
TextListener[] getTextListeners() //返回在此文本组件上注册的所有文本侦听器的数组。
boolean isEditable() //指示此文本组件是否可编辑。
protected String paramString() //返回表示此 TextComponent的状态的字符串。
protected void processEvent(AWTEvent e) //处理此文本组件上的事件。
protected void processTextEvent(TextEvent e) //处理在此文本组件上发生的文本事件,方法是将它们分派给任何已注册的 TextListener对象。
void removeNotify() //删除了 TextComponent的同行。
void removeTextListener(TextListener l) //删除指定的文本事件侦听器,使其不再接收来自此文本组件的文本事件。如果 l为 null ,则不会引发异常并且不执行任何操作。
void select(int selectionStart, int selectionEnd) //选择指定的开始和结束位置之间的文本。
void selectAll() //选择此文本组件中的所有文本。
void setBackground(Color c) //设置此文本组件的背景颜色。
void setCaretPosition(int position) //设置文本插入插入符的位置。
void setEditable(boolean b) //设置用于确定此文本组件是否可编辑的标志。
void setSelectionEnd(int selectionEnd) //将此文本组件的选择结束设置为指定位置。
void setSelectionStart(int selectionStart) //将此文本组件的选择开始设置为指定位置。
void setText(String t) //将此文本组件显示的文本设置为指定的文本。
1.1 TextComponet监听者
在默认的情况下,文本构件接受焦点。结果,除了激发被所有构件都激发的事件外,还激发键盘和焦点事件(请参见11.13节“构件和国际化”中的内容)。文本构件也激发文本事件,并支持增加和删除文本监听者。文本在任何时候发生改变,都将通知文本监听者。
2、java.awt.TextField
构造方法:
TextField() //构造一个新的文本字段。
TextField(int columns) //构造具有指定列数的新空文本字段。
TextField(String text) //构造使用指定文本初始化的新文本字段。
TextField(String text, int columns) //构造一个使用要显示的指定文本初始化的新文本字段,并且宽度足以容纳指定数量的列。
方法:
int getColumns() //获取此文本字段中的列数。
void setColumns(int columns) //设置此文本字段中的列数。
char getEchoChar() //获取要用于回显的字符。
void setEchoChar(char c) //设置此文本字段的回显字符。
boolean echoCharIsSet() //指示此文本字段是否具有用于回显的字符集。
void addActionListener(ActionListener l) //添加指定的操作侦听器以从此文本字段接收操作事件。
void removeActionListener(ActionListener l) //删除指定的操作侦听器,以便它不再从此文本字段接收操作事件。
3、退出有效性
当想要离开文本框时,要么通过按下TAB键或者回车或者用鼠标退出,使用一个检测确定在左边的文本框中输人的数据是有效的整数。如果不是,则焦点将回到左边的文本框,然后文本框中所有的文本被选定并要求重新输入整数。
4、过程中确认
在该方案中,包含监测击键和不允许非法字符串显示。这是很有意思的,该方法在以前版本的AWT中是不能使用的,因为你不可能阻止事件传递给构件的同位体。输入事件可以通过调用InputEvent . consume ()方法被消耗掉。
5、java.awt.TextArea
构造方法:
TextArea() //构造一个新的文本区域,将空字符串作为文本。
TextArea(int rows, int columns) //构造具有指定行数和列数的新文本区域,将空字符串构造为文本。
TextArea(String text) //使用指定的文本构造一个新的文本区域。
TextArea(String text, int rows, int columns) //使用指定的文本构造一个新的文本区域,并使用指定的行数和列数。
TextArea(String text, int rows, int columns, int scrollbars) //构造具有指定文本的新文本区域,并指定行,列和滚动条可见性。
字段:
static int SCROLLBARS_BOTH //创建并显示垂直和水平滚动条。
static int SCROLLBARS_HORIZONTAL_ONLY //仅创建和显示水平滚动条。
static int SCROLLBARS_NONE //不要为文本区域创建或显示任何滚动条。
static int SCROLLBARS_VERTICAL_ONLY //仅创建和显示垂直滚动条。
方法:
void append(String str) //将给定文本追加到文本区域的当前文本。
AccessibleContext getAccessibleContext() //返回与 AccessibleContext相关联的 TextArea 。
int getColumns() //返回此文本区域中的列数。
Dimension getMinimumSize() //确定此文本区域的最小大小。
Dimension getMinimumSize(int rows, int columns) //确定具有指定行数和列数的文本区域的最小大小。
Dimension getPreferredSize() //确定此文本区域的首选大小。
Dimension getPreferredSize(int rows, int columns) //确定具有指定行数和列数的文本区域的首选大小。
int getRows() //返回文本区域中的行数。
int getScrollbarVisibility() //返回一个枚举值,指示文本区域使用的滚动条。
void insert(String str, int pos) //将指定文本插入此文本区域中的指定位置。
protected String paramString() //返回表示此 TextArea的状态的字符串。
void replaceRange(String str, int start, int end) //用指定的替换文本替换指示的开始和结束位置之间的文本。
void setColumns(int columns) //设置此文本区域的列数。
void setRows(int rows) //设置此文本区域的行数。