Java文本框和文本区.ppt_第1页
Java文本框和文本区.ppt_第2页
Java文本框和文本区.ppt_第3页
Java文本框和文本区.ppt_第4页
Java文本框和文本区.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 文本框和文本区,在第6章介绍了组件和容器的概念,第7章介绍了Java Applet的基本概念。我们已经知道,Java Applet本身也是一个容器(准确地说,Java Applet的主类的实例是一个容器),因此Java Applet可以添加交互组件,如文本框、文本区、按钮、滚动列表等。本章学习文本框和文本区。 91 文本框 文本框可以输入单行的文本,你肯定对它不陌生。java.awt包中的TextField类是专门用来建立文本框的,即TextField创建的一个对象就是一个文本框。 TextField类有下列主要方法: (1)TextField() 如果使用这个构造方法创建文本框对象,则文本框的长度为一个字符长,可以在文本框中输入若干个字符。 (2)TextField(int x) 如果使用这个构造方法创建文本框对象,则文本框的长度为x个字符长,可以在文本框中输入若干个字符。 (3)TextField(String s) 如果使用这个构造方法创建文本框对象,则文本框的初始字符串为s,可以在文本框中输入若干个字符。 (4)TextField(String s,int x) 如果使用这个构造方法为s,文本框的长为x,可以在文本框中输入若干个字符。 (5)public void setText(String s) 文本框对象调用该方法可以设置文本框中的文本为参数s指定的文本,文本框中先前的文本将被清除。 (6)public String getText() 文本框对象调用该方法可以获取文本框中的文本。,(7)public void setEchoChar(char c) 文本框对象调用该方法可以设置文本框的回显字符,这样当用户在文本框中进行文字输入时,在文本框中只显示参数c指定的字符。 (8)public void setEditable(boolean b) 文本框对象调用该方法可以指定文本框的可编辑性。创建的文本框默认为可编辑的。 (9)public void addActionListener(ActionListener) 文本框对象调用该方法可以向文本框增加动作监视器(将监视器注册到文本框)。 (10)public void removeActionListener(ActionListener) 文本框对象调用该方法可以移去文本框上的动作监视器。 下面的例子text1.java中有3个文本框。,92 文本框上的ActionEvent事件,当用户在文本框中键入文本后,按回车键、单击按钮、在一个下拉式列表表中选择一个条目等操作时,都发生界面事件。程序有时需对发生的事件作出反应,宋实现特定的任务,例如,用户单击一个名字叫“确定”或“取消”的按钮,程序可能将作出不同的处理。在学习处理事件时,必须很好地掌握事件源、监视器、处理事件的接口这三个概念。在这一节,通过处理文本框这个具体的组件上的事件,来掌握处理事件的基本原理。 1事件源 能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。 2监视器 我们需要一个对象对事件源进行监视,以便对发生的事件作出处理。事件源通过调用 相应的方法将某个对象作为自己的监视器。例如,对于文本框,这个方法是: addActionListener(监视器) 对于获取了监视器的文本框对象,在文本框获得输入焦点之后,如果用户按回车键,Java运行系统就自动用ActionEvent类创建了一个对象,即发生了ActionEvent事件。也就是说,事件源获得监视器之后,相应的操作就会导致事件的发生,并通知监视器,监视器就会作出相应的处理。,3处理事件的接口 Java规定:为了让监视器这个对象能对事件源发生的事件进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体,那么当事件源发生事件时,监视器就自动调用执行被类实现的某个接口方法。java.awt.event包中提供了许多事件类和处理各种事件的接口。对于文本框这个接口的名字是ActionListener,这个接口中只有一个方法: public void actionPerformed(ActionEvent e) 当在文本框中输入字符并回车时,java.awt.event包中的ActionEvent类自动创建了一个事件对象,并将它传递给方法actionPerformed(ActionEvent e)中的参数e,监视器将自动调用方法: actionPerformed(ActinEvent e) 对发生的事件作出处理。 所以,我们称文本框这个事件源可以发生ActionEvent类型事件。为了能监视到这种类型的事件,事件源必须使用addActionListener方法获得监视器;创建监视器的类必须实现接口ActionListener。 现在,我们将文本框对象上的事件处理总结如下: (1)对于文本框事件源,可以发生ActionEvent事件文本框获得监视器之后,在文本框获得输入焦点之后按回车,java.awt.envent包中的ActionEvent类自动创建了一个事件对象。 (2)文本框获得监视器发生ActionEvent事件的事件源获得监视器的方法是:addActionListener(监视器)由于文本框可以发生ActionEvent事件,所以TextField类提供了addActionListener方法。,(3)处理事件的接口处理发生ActionEvent事件的接口是ActionListener,该接口中只有一个的方法: actionPerformer(ActinEvent e)文本框可以发生ActionEvent事件,因此,创建文本框的监视器的类必须要实现ActionListener接口。当在文本框中回车时,java.awt.event包中的ActionEvent类自动创建了一个事件对象,这个对象将自动传递给方法actionPerformed(ActionEvent e)中的参数e,监视器将自动调用方法actionPerformed(ActinEventxe)对发生的事件作出处理。 (4)ActionEvent类中的方法public Object getSource() ActionEvent对象调用方法getSource()可以获取发生ActionEvent事件的事件源对象的引用。public String getActionCommand() ActionEvent对象调用该方法可以获取发生ActionEvent事件时,和该事件相关的一个命令字符串,对于文本框,当发生ActionEvent事件时,文本框中的文本字符串就是和该事件相关的一个命令字符串。 Java事件处理就是基于这种授权模式,即发生相应事件的事件源对象,比如sourceObicet,通过调用相应的方法 sourceObjcetaddXXXListener(监视器);将某个对象作为自己的监视器。创建监视器对象的类必须实现相应的事件接口: XXXListener 当事件源发生事件时,监视器将调用接口中相应的方法作出处理。事件的处理过程如图:,事件源.addXXXListener(监视器),发生XXX事件,java.awt.event包中的XXXEvent类产生一个对象e,class A implements XXXListener,接口方法(XXX e) ,类A负责创建监 视器,A必须实现 XXX接口,例子textevent.java中 textl.addActionListener(this); 这句话是为text1添加动作监视器,这个this就是动作监视器了,因为这条语句写在init()方法中所以this代表的是当前这个类中的实例化对象,也就是我们看到的Applet容器 例子text3.java中在第一个文本框中输入数字,文本框2,3之中分别显示他的平方和立方 注:如果用户没有在文本框中输入任何字符,文本框调用getText方法将返回一个长度为0的字符串,即不含有任何字符的字符串:“。可以通过getText方法返回的字符串的长度来判断用户是否输入了字符。,93 文本区,文本区框可以输入多行的文本,你肯定对它不陌生。javaawt包中的类TextArea类是专门用来建立文本区的,即TextArea创建的一个对象称做一个文本区。TextArea类中有下列主要方法: (1)TextArea() 如果使用这个构造方法创建文本区对象,则文本区的列数和行数取默认值。文本区有水平和垂直滚动条。 (2)TextArea(String s) 如果使用这个构造方法创建文本区对象,则文本区的初始字符串为s。文本区有水平和垂直滚动条。 (3)TextArea(int x,int y) 如果使用这个构造方法创建文本区对象,则文本区行数为x,列数为y。文本区有水平和垂直滚动条。 (4)TextArea(String s,int x,int y) 如果使用这个构造方法创建文本区对象,则文本区的初始字符串为s,文本框行数为x,列数为y。文本区有水平和垂直滚动条。 (5)TextArea(String s,int x,int y,int scrollbar) 如果使用这个构造方法创建文本区对象,则文本区的初始字符串为s,文本框行数为x,列数为y。scrollbar取值: TextArea.SCROLLBARS_BOTH /水平和垂直都有 TextArea.SCROLLBARS_VERTICAL_ONLY /只有垂直的 TextArea.SCROLLBARS_HORIZONTAL_ONLY /只有水平的 TextArea.SCROLLBARS_NONE /没有滚动条 控制文本区滚动条的显示状态。,(6)public void setText(String s) 文本区对象调用该方法可以将文本区中的文本设置为参数s指定的文本,文本区中先前的文本将被清除。 (7)public String getText() 文本区对象调用该方法可以获取文本区中的文本。 (8)public void setEditable(boolean b) 文本区对象调用该方法可以指定文本区的可编辑性。文本区默认是为可编辑的。 (9)public boolean isEditable() 文本区对象调用该方法可以获取文本区是否是可编辑的,当文本区是可编辑时,该方法返回true,否则返回false。 (10)public void insert(String s,int x) 文本区对象调用该方法可以在指定位置x处,插入指定文本s。x是指距文本区开始处字符的个数,x不能大于文本区中字符的个数。 (11)public void replaceRange(String s,int start,int end) 文本区对象调用该方法可以用给定新文本s替换从指定位置start开始到指定位置end结束的文本,start和end不能大于文本区中字符的个数。 (12)public void append(String s) 文本区对象调用该方法可以在文本区中尾加文本。 (13)int getCaretPosition() 文本区对象调用该方法可以获取文本区中输入光标的位置。 (14)public void setCaretPosition(int position) 文本区对象调用该方法可以设置文本区中输入光标的位置,其中position不能大于文本区中字符的个数。 (15)String getSelectedText() 文本区对象调用该方法可以获取文本区中选中的文本,例如,通过拖动鼠标选中的文本。,(16)public int getSelectionStart() 文本区对象调用该方法可以获取被选中的文本的开始位置。 (17)public int getSelectionEnd() 文本区对象调用该方法可以获取被选中的文本的结束位置。 (18)public void setSelectionStart(int n) 文本区对象调用该方法可以设置文本区中被选中的文本的开始位置,其中n不能大于文本区中字符的个数。 (19)public void setSelectionEnd(int n) 文本区对象调用该方法可以设置文本区中被选中的文本的结束位置,其中n不能大于文本区中字符的个数。 (20)public void selectAll() 文本区对象调用该方法选中文本区的全部文本。 (21)addTextListener(TextListener) 文本区对象调用该方法可以向文本区增加文本监视器。 (22)removeTextListener(TextListener) 文本框对象调用该方法可以移去文本区上的文本监视器。 例子area1.java中演示了,几个方法的应用以及如何把文本区加入到容器之中。,94 文本区上的TextEvent事件,文本区可以发生TextEvent事件。当文本区中的内容发生变化时,例如键入字符、删除字符时,都会导致文本区中的内容发生变化,这时,TextEvent类将自动创建一个事件对象。现在,我们将文本区对象上的事件处理总结如下: 1TextEvent事件 对于文本区事件源,可以发生TextEvent事件。当文本区获得监视器之后,在文本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论