学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt

上传人:本田雅阁 文档编号:2648918 上传时间:2019-04-29 格式:PPT 页数:205 大小:1.18MB
返回 下载 相关 举报
学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt_第1页
第1页 / 共205页
学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt_第2页
第2页 / 共205页
学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt_第3页
第3页 / 共205页
亲,该文档总共205页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt》由会员分享,可在线阅读,更多相关《学习导读首先我们学习一些基本的图形编程知识包括窗口.ppt(205页珍藏版)》请在三一文库上搜索。

1、第9章 图形用户界面(GUI)设计,学习导读 首先,我们学习一些基本的图形编程知识,包括窗口的显示及外观设置、在窗口中显示文字和图像等; 接下来,介绍Java的事件处理机制,例如如何在程序中接收并处理如键盘按键和鼠标点击等“事件”; 最后,系统地介绍图形用户界面中常用组件的用法,如布局管理器、文本框、复选框、菜单、对话框等。,教学重点与难点,容器、组件、布局和观感 Java的事件处理机制 布局管理器 各种Awt组件的用法 各种Swing组件的用法 窗口事件、键盘事件、鼠标事件的处理,Java 1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是希望构建一个通用的GUI,使得利用它编写的程序能

2、够运行在所有的平台上,以实现Sun公司提出的口号“一次编写,随处运行”。 在Java 1.2中,Sun公司推出了新的用户界面库:Swing。相对AWT来说,Swing功能更强大、使用更方便,它的出现使得Java的图形用户界面上了一个台阶。 但是,Swing并没有代替AWT。在Java 1.1中,AWT事件处理模型有了根本改变。Swing使用的仍然是Java 1.1的事件处理模型。,9.1图形用户界面设计概述,9.1.1 GUI支持包和简单GUI程序例 1.java.awt包 Java语言在java.awt包中提供了大量地进行GUI设计所使用的类和接口,包括绘制图形、设置字体和颜色、控制组件、处

3、理事件等内容,AWT是Java语言进行GUI程序设计的基础。 2. javax.swing包 Swing包是Java基础类库(Java Foundation Classes,JFC)的一部分。Swing提供了从按钮到可分拆面板和表格的所有组件。,AWT组件和对应的Swing组件,从名称上很容易记忆和区别。 例如,AWT的框架类、面板类、按钮类和菜单类,被命名为Frame、Panel、Button和Menu,而Swing对应的组件类被命名为JFrame、JPanel、JButton和JMenu。与AWT组件相比,Swing组件的名前多一个 “J” 字母。 另外,AWT 组件在java.awt包中

4、,而Swing组件在javax.swing包中。,3.一个Java GUI简单程序 【例9.1】课本P188 Java Swing GUI应用程序中的基本代码如下: (1)引入合适的包和类 一般的Swing GUI应用程序应包含程序中的前三个引入语句,它们分别表示引入awt包、awt事件处理包和swing包。其他包按需引入。 由于Swing组件使用AWT的结构,包括AWT的事件驱动模式,所以,使用swing组件的程序一般需要使用awt包。 (2)使用缺省的观感或设置自己的观感(Look and Feel) (3)设置一个顶层的容器 (4)根据需要,使用缺省的布局管理器或设置另外的布局管理器 (

5、5)定义组件并将它们添加到容器 (6)对组件或事件编码,9.1.2 容器、组件、布局和观感 1.容器(Container)和组件(Component) 一个Java的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一个按钮、一个文本框等。 容器实际上是一种具有容纳其他组件和容器的功能的组件。抽象类Container是所有容器的父类,其中包含了很多有关容器的功能和方法。而类Container又是Java语言的组件类Component的子类。,2.布局管理器(Layout Manager) 为了使得图形用户界面具有良好的平台无关性,在Java语言中提

6、供了布局管理器这个工具来管理组件在容器中的布局,而不使用直接设置组件位置和大小的方式。容器中的组件定位由布局管理器决定。每个容器都有一个缺省的布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其相应的布局管理器。但也可以不用缺省的布局管理器,在程序中指定其新的布局管理器。 Java平台提供多种布局管理器,常用的有FlowLayout、BorderLayout、 GridLayout、CardLayout、BoxLayout和GridBagLayout等。使用不同的布局管理器,组件在容器上的位置和大小都是很不一样的。,在程序中安排组件的位置和大小时,应该注意: (1)容器中的布

7、局管理器负责各个组件的大小和位置。因此用户无法在这种情况下直接设置这些属性。若试图使用Java语言提供的setLocation()、setSize()、setBounds()等方法,则都会被布局管理器覆盖。 (2)若用户确实需要亲自设置组件的位置和大小,则应取消该容器的布局管理器,方法为: setLayout(null); 随后,用户必须使用setLocation()、setSize()、setBounds()等方法为组件设置大小和位置,但这种方法将会导致程序的系统相关。 在一个GUI应用程序的界面上,除了可以见到上述的标准GUI元素外,还可以见到一些非交互的起到装饰、美化界面的作用的几何图形

8、、图案、图像等内容。,3.观感(Look and Feel) Java swing的一个重要特征是它的可插入的“观感”体系。一个Swing应用程序或一个最终用户可指明所需要的观感,使得Swing应用程序的外观和行为都可以被定制。Swing运行一个缺省的Java观感(也称为Metal观感),还实现了模仿Motif和Windows的观感。这样,一个Swing程序可拥有Java程序的独特外观,也可以拥有熟悉的Windows操作系统外观。 在本章稍后部分的单选按钮的程序例中分别显示了Windows、Motif和Metal三种不同风格的观感。 一般在应用程序的JFrame的构造方法中或在JApplet的

9、init()方法中进行观感的设置。,9.1.3事件处理(重要) 在一个GUI程序中,为了能够接收用户的输入、命令的按键和鼠标操作,程序系统首先应该能够识别这些操作并做出相应的响应。通常一个键盘和鼠标操作将引发一个系统预先定义好的事件,用户程序只要编写代码定义每个事件发生时程序应做出何种响应即可。这些代码会在它们对应的事件发生时由系统自动调用,这就是GUI程序中事件和事件响应的基本原理。 如果用户通过用户界面执行了一个动作,这将导致一个事件的发生。事件是描述用户所执行操作的数据对象。在Java中,定义了各种不同类型的事件类,用来描述各种类型的用户操作。,事件是由事件源产生的,事件的产生者称为事件

10、源。例如,在Button组件上点击鼠标会产生以这个Button为源的一个事件:ActionEvent。 事件的行为多种多样,由不同的事件监听器处理,编写事件处理程序首先应确定关注的事件属于何种监听器类型,确定后对该监听器进行注册.当事件源产生了一个事件以后,该事件就委托给已经注册的事件监听器,事件监听器监听到事件后,负责执行相应的响应方法。 一个事件监听器是一个实现了给定接口的类的实例,接口中定义了相应的响应方法。,在AWT中,提供11种标准的监听器类型,见下表。 监听器 适配器类 注册方法 ActionListener addActionListener AdjustmentListener

11、 addAdjustmentListener ComponentListener ComponentAdapter addComponentListener ContainerListener ContainerAdapter addContainerListener FocusListener FocusAdapter addFocusListener ItemListener addItemListener KeyListener KeyAdapter addKeyListener MouseListener MouseAdapter addMouseListener MouseMotio

12、nListener MouseMotionAdapter addMouseMotionListener TextListener addTextListener WindowListener WindowAdapter addWindowListener,在确定监听器类型后,要用事件源类的注册方法来注册一个监听器类的对象。这样,事件源产生的事件会传送给已注册的处理该类事件的监听器对象,该对象将自动调用相应的事件处理方法来处理该事件。 具体的注册方法是:用监听器类的对象作为参数调用事件源本身的addXxxListener()方法。该方法的参数是一个监听器类的对象,有多种形式。例如: (1)分离的

13、监听器类,该类通常为继承相应事件适配器类的子类,类中包含了事件处理方法。参数是该类的一个对象。参见例 (2)实现监听器接口,参数为this,表示本对象就是一个监听器类的对象。在本类中包含事件处理方法。如课本例9.1 (3)有名内部类,参数形式为继承事件适配器类的子类对象,在子类中包含事件处理方法。 (4)匿名内部类,参数形式为用new开始的一个无名的类定义。其中包含事件处理方法。,我们可以通过以下方法来注册事件监听器对象: eventSourceObject.addEventListener(eventListenerObject); 以按钮类为例: MyActionListener list

14、ener = ; Button btn = new Button(“提交”); btn.addActionListener(listener); 事件监听器对象listener所属的类MyActionListener必须实现相应的接口,以响应事件: public class MyActionListener implements ActionListener public void actionPerformed(ActionEvent evt) /相应的响应操作 ,9.2 布局管理器,在容器中所有组件的布局(位置和大小)由布局管理器来控制。在Java语言中提供了FlowLayout、Bord

15、erLayout、GridLayout、CardLayout和GridBagLayout等多种布局管理器。 每种容器都有自己缺省的布局管理器。缺省地,JPanel使用FlowLayout,而内容窗格 ContentPane (JApplet、JDialog和JFrame对象的主容器) 使用BorderLayout。如果不希望使用缺省的布局管理器,则可使用所有容器的父类Container的setLayout()方法来改变缺省的布局管理器。,1.FlowLayout FlowLayout布局是一种最基本的布局。这种布局指的是把组件一个接一个从左至右、从上至下地依次放在容器上,每一行中的组件缺省为居

16、中对齐。当容器的尺寸改变后,组件的大小不变,但布局将会随之变化。 FlowLayout是Applet和JPanel的缺省布局管理器。FlowLayout类的构造方法如下: FlowLayout() 创建每行组件对齐方式为居中对齐、组件间距为5个像素单位的对象 FlowLayout(int align) 创建指定每行组件对齐方式、组件间距为5个像素单位的对象,align可取三个静态常量LEFT、CENTER和RIGHT之一(分别表示左、中、右对齐方式)。,FlowLayout(int align, int hgap, int vgap) 创建指定每行组件对齐方式的对象,该对象也使用参数vgap和

17、hgap指定了组件间的以像素为单位的纵横间距。 向使用FlowLayout布局的容器添加组件可简单地使用下面的语句: add(组件名); 例:import java.awt.*; public class MyFlowLayout public static void main(String args) Frame f=new Frame(); f.setLayout(new FlowLayout(); Button b1=new Button(“Fisrt“); Button b2=new Button(“Seconed“); Button b3=new Button(“Third“); f

18、.add(b1);f.add(b2);f.add(b3); f.setSize(300,100);f.setVisible(true); ,2BorderLayout BorderLayout 是内容窗格的缺省布局管理器。内容窗格是框架JFrame,小程序JApplet和对话框JDialog的主容器。BorderLayout将容器的布局分为五个区:北区、南区、东区、西区和中区。这几个区的分布规律是“上北下南,左西右东”。当容器的大小改变时,容器中的各个组件相对位置不变,其中间部分组件的尺寸会发生变化,四周组件宽度固定不变。,BorderLayout类的构造方法如下: BorderLayout(

19、) 创建组件间无间距的BorderLayout对象。 BorderLayout(int hgap, int vgap) 创建有指定组件间距的对象。 向BorderLayout布局的容器添加组件时,每添加一个组件都应指明该组件加在哪个区域中。add()方法的第二个参数指明加入的区域,区域东南西北中可用五个静态常量表示:BorderLayout.EAST、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.NORTH和BorderLayout.CENTER。,【例9.3】将五个按钮加入BorderLayout的五个区。 import java.awt

20、.*; import javax.swing.*; public class BorderLayoutDemo extends JApplet public void init() Container c = getContentPane(); c.add(new Button(“北North“), BorderLayout.NORTH); c.add(new Button(“南South“), BorderLayout.SOUTH); c.add(new Button(“东East“), BorderLayout.EAST); c.add(new Button(“西West“), Borde

21、rLayout.WEST); c.add(new Button(“中Center“), BorderLayout.CENTER); 程序运行的结果见下图。,3GridLayout GridLayout布局是将容器的空间分成若干行和列的一个个网格,可以给出网格的行数和列数,组件添加到这些网格中。当改变容器的大小后,其中的组件相对位置不变,但大小改变。容器中各个组件同高度、同宽度。各个组件缺省的排列方式为:从上到下,从左到右。 GridLayout类的构造方法如下: public GridLayout()创建单行每个组件一列的GridLayout对象。 public GridLayout(int

22、rows, int cols) 创建指定行列数的GridLayout对象。 public GridLayout(int rows, int cols, int hgap, int vgap)创建指定行列数的GridLayout对象。,因为没有容器缺省使用GridLayout,因此在使用GridLayout前,要用setLayout()方法将容器的布局管理器设置为GridLayout。 在向GridLayout添加组件时,组件加入容器要按序进行,每个网格中都必须加入组件,若希望某个网格为空,可以为该网格加入一个空的标签:add(new JLabel()。,import java.awt.*; i

23、mport java.applet.*; public class Calc extends Applet Button button0= new Button(“0“); Button button1= new Button(“1“); Button button2= new Button(“2“); Button button3= new Button(“3“); Button button4= new Button(“4“); Button button5= new Button(“5“); Button button6= new Button(“6“); Button button7=

24、 new Button(“7“); Button button8= new Button(“8“); Button button9= new Button(“9“); Button buttonAdd= new Button(“+“); Button buttonSubtract= new Button(“-“); Button buttonMultiply= new Button(“*“); Button buttonDivide= new Button(“/“); Button buttonEqual= new Button(“=“); TextField textField = new

25、TextField();,public void init() setLayout(new GridLayout(4,2,10,10); add(textField); add(button7); add(button8); add(button9); add(buttonEqual); add(button4); add(button5); add(button6); add(button0); add(button1); add(button2); add(button3); add(buttonAdd); add(buttonSubtract); add(buttonMultiply);

26、 add(buttonDivide); ,【例9.4】GridLayout布局。 import java.awt.*; import javax.swing.*; public class GridLayoutDemo extends JApplet public void init() Container c = getContentPane(); c.setLayout(new GridLayout(3,2); c.add(new Button(“1“); c.add(new Button(“2“); c.add(new Button(“3“); c.add(new Button(“4“)

27、; c.add(new Button(“5“); c.add(new Button(“6“); ,例9.4运行的结果如下图所示。,4.CardLayout CardLayout布局管理器能够使得多个组件共享同一显示空间,这些组件之间的关系像一叠重叠的扑克牌,只有最上面的组件是可见的。注意:在一个显示空间(卡片)中只能显示一个组件,因此,可使用容器嵌套的方法来显示多个组件。 CardLayout类的构造方法如下: CardLayout()创建间距为零的对象。 CardLayout(int hgap, int vgap)创建带有水平hgap和垂直vgap间距的对象。 为了使用叠在下面的组件,可以为

28、每个组件取一名字,名字在用add()方法向容器添加组件时指定,需要某个组件时通过show()方法指定该组件的名字来选取它。也可以顺序使用这些组件,或直接指明选取第一个组件(用first()方法)或最后一个组件(用last()方法)。,【例9.5】CardLayout布局。 import java.awt.*; import javax.swing.*; public class CardLayoutDemo extends JApplet CardLayout cl =new CardLayout(20,40); / 组件在卡片中有边界 JButton b1=new JButton(“卡片一“

29、); JButton b2=new JButton(“卡片二“); JButton b3=new JButton(“卡片三“); public void init() getContentPane().setLayout(cl); getContentPane().add(“card1“,b1); getContentPane().add(“card2“,b2); getContentPane().add(“card3“,b3); ,程序运行结果如下图所示。程序中的三个按钮组件顺序添加到卡片布局管理器的各个卡片上,它们共享同一显示区域,因此只能见到最上面的“卡片一”按钮。,5.GridBagL

30、ayout GridBagLayout是最复杂也最灵活的布局管理器。这个布局管理器将组件放入单元格中,但允许一些组件跨越单元格。 可用GridBagLayout类的构造方法GridBagLayout()来创建一个GridBagLayout布局管理器。因GridBagLayout布局设置比较复杂,这里就不介绍了,请读者参看API说明或其他资料。,6.自定义布局 若希望按照自己的要求来进行组件和界面图形元素的布局,可用容器的setLayout(null)方法将容器的布局管理器设置为空,然后用下面的方法设置组件在容器中的位置和大小: setBounds(int a,int b,int width,i

31、nt height) 其中,参数a和b指定矩形形状的组件左上角在容器中的坐标,width和height指定组件的宽和高。 【例9.6】设置自己的布局管理器。 import java.awt.*; import javax.swing.*; class NullLayout extends JFrame,NullLayout() super(“建设自己的布局管理器“); Container c=getContentPane(); / 也可不用内容窗格 c.setLayout(null); JButton jb1 =new JButton(“按钮1“); JButton jb2 =new JBut

32、ton(“按钮2“); c.add(jb1);c.add(jb2); jb1.setBounds(10,10,100,30); jb2.setBounds(10,50,100,30); public static void main(String args) NullLayout nl=new NullLayout(); nl.setSize(200,150); nl.setVisible(true); ,程序的运行结果如下图所示。注意,采用这种方式的布局,组件的位置和大小将不随窗口大小的变化而变化。 下图为例9.6的运行界面。,补 : 创建简单的GUI应用程序,1.创建窗口 在软件项目编程中

33、,和用户建立接口的首先是一个特殊的窗口中,这个窗口是一个特殊的容器,在这个容器中可以容纳其他的可视化组件(Component),或者是另外的容器,而这些组件之间又进行着有机的整合和联系,最终构成一个良好的可视化接口。 这个特殊的窗口可以是一个简单的窗口(Window或JWindow类),但是它没有提供标题栏,也没有提供最大化和最小化以及关闭按钮,同时也没有在图形化接口操作系统中所看见的大多数窗口所具有的其他功能.另外这个特殊的窗口也可以是一个框架,而它有标题栏、窗口管理按钮、状态区以及其他窗口功能。所以一般的创建窗口程序的首要任务是创建一个继承Frame(或JFrame)类的子类,并用它作为特

34、殊窗口来容纳其他容器或组件。,首先声明一个MyFrame类来继承JFrame,代码如下: public class MyFrame extends Frame /代码 因为用到了Frame类,所以要引用该类所在的包。 因为继承了Frame类,所以MyFrame类中基本上已经完成了一个框架的创建,剩下的任务就是对这个框架进行一定的修饰,如调用超类的构造方法进行初始设置的设定,确定框架应该显示的位置和大小,决定用户如何关闭框架、显示框架等。超类Frame有两个构造方法,Frame()和Frame(String name).后者参数设定了标题栏,如果选用无参的构造方法,则标题栏的设定可以用setTi

35、tle(String Name)方法实现。如在MyFrame构造方法中有: super(); this.setTitle(“框架”);/其中this可以省略,框架的显示位置的设定: setLocation(Point p) 其中p是Java.awt.Point类的一个对象,如: setLocation(new Point(100,100); 框架大小的显示: setSize(int width,int height) 框架大小和位置的显示也可以用一个方法完成: setBounds(100,100,400,200) 是指框架从(100,100)画到点(400,200)处,框架层次关系,Compo

36、nent类是所有GUI对象的祖先,Window类是Frame类的父类。对于框架外观的操作比较重要的方法如下: setTitle设置窗口中标题栏的文字。 setResizable设置用户是否可以改变框架大小。 dispose方法关闭窗口,并回收该窗口的所有资源。 setSize设置组件的大小。 setBackground设置组件的背景颜色。 setVisible设置组件是否可见。 setBounds重新设置组件的大小和位置。,2.执行程序 在完成了基本的创建一个在指定位置显示指定大小的并且有指定标题的框架之后,接下来要执行并显示它,而这一步骤需要编写一个main()方法,在main()方法中创建

37、已编写好的MyFrame类的对象mf。一个框架在创建的同时缺省为这个框架是可视的,否则调用对象的setVisible()方法,同时这个方法也可以在MyFrame类的构造方法中实现。如setVisible(true). 3.退出程序 为了退出程序,关闭显示结果,Java程序允许用户单击框架的“关闭”按钮来关闭,这需要对当前生成的窗口进行监视,监视用户操作需要使用事件处理类,实现WindowListener接口可以实现这一操作,WindowListener接口定义了以下7个方法来实现窗口的相应的操作:,windowActivated():当窗口成为活动窗口时响应此方法,这意味着这个接口可以接收来自

38、键盘的响应。 windowDeactivated():窗口变为非活动的,不能接收键盘的响应。 windowClosing():窗口正在关闭 windowClosed():窗口已经关闭 windowOpened():窗口可见 windowIconified():窗口已经最小化 windowDeiconified():窗口已经最大化,定义一个类来实现WindowListener接口,在感兴趣的方法中添加我们需要的代码,然后让其他方法为空即可。 class QuitWindow implements WindowListener public void windowClosing(WindowEve

39、nt evt) System.exit(0); void windowOpened(WindowEvent evt) void windowClosed(WindowEvent evt) void windowIconified(WindowEvent evt) void windowDeiconified(WindowEvent evt) void windowActivated(WindowEvent evt) void windowDeactivated(WindowEvent evt) ,java.awt.event包中的另外一个类WindowAdapter实现了有7个空方法的这个接口

40、,但没有任何操作,通过创建WindowAdapter类的子类,可以重载希望处理的和用户操作事件相关的方法。下面给出用WindowAdatper类的子类ExitFrameg来实现框架程序的关闭。 Import java.awt.event.*; Class ExitFrame extends WindowsAdapter public void windowClosing(WindowEvent e) System.exit(0); ExitFrame类国为继承了WindowAdapter类,所以实现了WindowListener接口,这样ExitFrame类的对象就可以用于监视框架,而这个类只

41、有一个任务,就是等待关闭窗口。System.exit(0)的功能是关闭正在运行的程序。如果程序因为某些错误关闭,则参数是其他整型值。,可以看到新编写的ExitFrame类还没有和框架程序类MyFrame建立联系,也就是说没有把事件监听器注册到框架中,可以通过在ExitFrame类的构造方法中调用addWindowListener()方法来建立联系: ExitFrame ef=new ExitFrame(); this.addWindowListener(ef); 通过上面的介绍,就完成了窗口的建立、执行程序和退出程序的操作。 创建一个空框架的完整代码如下:,例:显示一个空框架 import j

42、ava.awt.*; import java.awt.event.*; public class MyFrame extends Frame public MyFrame(String str) super(str); addWindowListener(new ExitFrame(); setSize(300,200); setBackground(Color.yellow); setVisible(true); public static void main(String args) MyFrame mf=newMyFrame(“My FirstFrame“); ,class ExitFr

43、ame extends WindowAdapter public void windowClosing(WindowEvent evt) Frame frm=(Frame)evt.getSource(); frm.setVisible(false); frm.dispose(); System.exit(0); ,例: 框架外观的设置 设置具有以下特征的框架:它的高度和宽度为整个屏幕的1/3;自定义窗口的标题和背景;窗口的大小不可变。 import java.awt.*; import java.awt.event.*; public class FrameSizeSet extends Fr

44、ame public FrameSizeSet() addWindowListener(new Wadapt(); setTitle(“框架外观“); /设置标题 setBackground(Color.yellow); /设置背景 Toolkit tk=Toolkit.getDefaultToolkit(); /获得屏幕的相关尺寸 Dimension screenSize=tk.getScreenSize(); int screenHeight=screenSize.height; int screenWidth=screenSize.width; /设置框架的尺寸,大小不可调 setSiz

45、e(screenWidth/3,screenHeight/3); setResizable(false); setVisible(true); ,public static void main(String args) FrameSizeSet frm=new FrameSizeSet(); class Wadapt extends WindowAdapter public void windowClosing(WindowEvent evt) Frame frm=(Frame)evt.getSource(); frm.setVisible(false); frm.dispose(); Sys

46、tem.exit(0); ,1.文本编辑区 文本编辑区(TextField或TextArea),可以接受用户的文本输入,并有一定的编辑功能,如退格,块复制,块粘贴等。 TextField类提供了多种构造方法: public TextField() public TextField(int columns):指定能容纳字符的个数 Public TextField(String text):指定初始化文本 Public TextField(String text,int columns),向框架中添加其它组件(awt),创建TextArea的方法与TextField的方法相似,除了在指定文本区大小

47、时既要指定文本区的列数又要给出文本区的行数外,其它是完全相同的,构造方法: public TextArea() public TextField(int rows,int columns):指定能容纳字符的个数 Public TextField(String text):指定初始化文本 Public TextField(String text,int rows,int columns),如: TextField textField = new TextField(“我是TextField类文本框!“,60); TextArea textArea = new TextArea(“我是TextAr

48、ea类文本框!“); add(textField); add(textArea);,TextField类中的常用方法: Public int getColumns() Public String getText() Public void setText(String t) TextArea类中常用方法 Public void append(String str) Public int getColumns() Public void insert(String str,int pos) Public setRows(int rows) Public setColumns(int cols),文本框和文本区的事件响应 文本框除了继承它们父类的事件类型,如TextEvent,KeyEvent,MouseEvent等外,还可以产生一个ActionEvent事件,当向文本框中键入信息并按下Enter键后,就会发生该事件。为了响应该事件,必须实现相应的监听器接口ActionListener,并为文本框注册监听器,然后通过对ActionListener接口中的actionPerformed()方法的实现来完成对事件的处理。 文本区与文本框相同的是可以接收继承你类的多种事件,但由于它是多行的,所以按Enter键不会产生事件,此时可以在文本区旁边设置一个按钮

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1