javaGUI学习26:AWT-文本构件

在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) //设置此文本区域的行数。  
上一篇:javaGUI学习38:Swing-基本知识


下一篇:javaGUI学习23:AWT-Component类