第一节 | 第二节 | 第三节 | 第四节 | 第五节 | 第六节 | 第七节 | 第八节 | 第九节 | 第十节 | 第十一节 | ||||||||||||||||||||||||||||||||||||||||||||
第六节 文字输入组件
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.单行文本框和多行文本框 单行文本框(TextField)和多行文本框(TextArea)是由TextComponent类直接继承的,我们先讨论单行文本框。 单行文本框是一个单行显示区域,可以从键盘上接收用户输入。用户将数据输入文本框,然后按回车键就可以在程序中使用该数据。单行文本框也可以用于显示信息。表10.6列出了TextField类的构造函数。 表13.4 TextField类的构造函数及常用方法
【例13.4】演示单行文本框的构造函数及常用方法的使用。 //Fig. 10.10: TextFieldDemo.java //Demonstration the TextField class constructors and methods. import java.applet.Applet; import java.awt.*; public class TextFieldDemo extends Applet{ private TextField textField1,textField2; public void init(){ //construct TextField with default text textField1=new TextField("在这里输入用户名"); //construct TextField with 15 elements visible textField2=new TextField(15); //set the echo charactor textField2.setEchoChar('*'); //add components to applet add(new Label("用户名: ")); add(textField1); add(new Label("密码: ")); add(textField2); } public void paint(Graphics g){ String s; s="用户名: "+textField1.getText(); s=s+"密码: "+textField2.getText(); showStatus(s); } } 程序运行结果如图13.4。 图13.4 单行文本框示例 通过下列语句: textField1=new TextField("在这里输入用户名"); textField2=new TextField(15); 创建了两个TextField的对象textField1和textField2,其中textField1的列宽为所显示字符串的长度,textField2的列宽为15,未显示任何文本。通过下列语句: textField2.setEchoChar(('*'); 设置了textField2的掩码字符,每当在该文本框中输入一个字符时,就会显示一个星号(*)。注意,虽然为textField2设置了掩码字符,但该文本框的getText方法仍然返回实际输入的字符串。 多行文本框(TextArea)可以显示多行文本,用户在多行文本框中击回车键会使光标移到下一行行首。表10.7列出了TextArea类的构造函数及常用方法。 表13.5 TextArea类的构造函数及常用方法
【例13.5】演示TextArea类的常用构造方法。其中一个多行文本框不允许用户进行编辑,而另一个则允许用户输入信息,如图10.11所示。 //Fig. 10.11: TextAreaDemo.java //Creating TextArea Objects. import java.applet.Applet; import java.awt.*; public class TextAreaDemo extends Applet{ private TextArea textArea1,textArea2; public void init() { //creating 2 10*20 TextAreas textArea1=new TextArea("Read-only Text!",10,20); textArea2=new TextArea(10,20); //set textArea1 read-only textArea1.setEditable(false); add(textArea1); add(textArea2); } } 图13.5 创建多行文本框示例 程序中使用TextArea类创建多行文本框textArea1和textArea2。下列语句: textArea1=new TextArea(""Read-only Text!"",10,20); textArea1=new TextArea(10,20); 用于创建两个多行文本框,它们都包括10行、20列,其中,textArea1初始时显示文本“Read-only Text!”,textArea2初始时未显示任何文本。下列语句: textArea1.setEditable(false); 使多行文本框textArea1不可编辑(你仍然可以把光标置于其中,但不能修改它的文本)。 多行文本框总是带有滚动条,仅当多行文本框中的文本超出其可见范围时,滚动条才能滚动。程序员无法直接控制这两个滚动条。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||