Java2实用教程课件(第3版第7章).ppt
《Java2实用教程课件(第3版第7章).ppt》由会员分享,可在线阅读,更多相关《Java2实用教程课件(第3版第7章).ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第章第章AWT组件及事件处理组件及事件处理 l7.1Java窗口窗口l7.2文本框文本框l7.3内部类实例做监视器内部类实例做监视器l7.4按钮与标签按钮与标签l7.5菜单项菜单项l7.6文本区文本区l7.7面板面板l7.8布局布局l7.9画布画布l7.10 选择型组件选择型组件l7.11 Component类的常用方法类的常用方法l7.12 窗口事件窗口事件l7.13 鼠标事件鼠标事件l7.14 焦点事件焦点事件l7.15 键盘事件键盘事件l7.16 使用剪贴板使用剪贴板l7.17 打印打印l7.18 综合实例综合实例 图形用户界面图形用户界面l通过图形用户界面(GUI:Graphics U
2、ser Interface),用户和程序之间可以方便地进行交互。Java的抽象窗口工具包(AWT:Abstract Window Toolkit)中包含了许多类来支持GUI设计。AWT由Java的java.awt包提供,该包中有许多用来设计GUI的组件类,如:按钮、菜单、列表、文本框等组件类,同时它还包含窗口、面板等容器类。容器类容器类(Container)和组件类和组件类(Component)lJava.awt包中一部分类的层次关系如图所示 7.1 Java窗口窗口lFrame类是Container类的间接子类。当需要一个窗口时,可使用Frame或其子类创建一个对象。窗口也是一个容器,可以向
3、窗口添加组件。需要注意的是,窗口默认地被系统添加到显示器屏幕上,因此,不允许将一个窗口添加到另一个容器中。1.Frame常用方法l1Frame()该构造方法可以创建一个无标题的窗口,窗口的默认布局为BorderLayout布局。l2Frame(String s)该构造方法可以创建一个标题为s的窗口,窗口的默认布局为BorderLayout布局。l3public void setBounds(int a,int b,int width,int height)窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height
4、。l4public void setSize(int width,int height)设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。l5public void setVisible(boolean b)设置窗口是可见还是不可见,窗口默认是不可见的。l6public void setResizable(boolean b)设置窗口是否可调整大小,窗口默认是可调整大小的。2.菜单条、菜单、菜单项菜单条、菜单、菜单项 ljava.awt包中的Menubar类是负责创建菜单条的,即Menubar的一个实例就是一个菜单条。Frame类有一个将菜单条放置到窗口中的方法:setMenuBar(Me
5、nuBar bar);ljava.awt包中的Menu类是负责创建菜单的,即Menu的一个实例就是一个菜单 ljava.awt包的MunuItem类负责创建菜单项,即MenuItem的一个实例就是一个菜单项 7.3 文本框文本框ljava.awt包中的类TextField类创建文本框l用户可以在文本框输入单行的文本 .TextField类的主要方法类的主要方法 lTextField(int x)如果使用这个构造方法创建文本框对象,文本框中的可见字符序列的长度为 x个机器字符长。文本框是可编辑的,用户可以在文本框中输入若干个字符。lTextField(String s)如果使用这个构造方法创建文
6、本框对象,则文本框的初始字符串为s。文本框是可编辑的,可以在文本框中输入若干个字符。lpublic void setText(String s)文本框对象调用该方法可以设置文本框中的文本为参数s指定的文本,文本框中先前的文本将被清除。lpublic String getText()文本框对象调用该方法可以获取文本框中的文本。lpublic void addActionListener(ActionListener l)文本框对象调用该方法可以向文本框增加动作监视器(将监视器注册到文本框)。2.文本框上的文本框上的ActionEvent事件事件 l学习组件除了了解组件的属性和功能外,一个更重要的
7、方面是学习怎样处理组件上发生的界面事件。l在学习处理事件时,必须很好地掌握事件源、监视器、处理事件的接口这三个概念。l通过处理文本框这个具体的组件上的事件,来掌握处理事件的基本原理。Java的事件处理模式的事件处理模式l事件源能够产生事件的对象都可以成为事件源,如文本框、按钮、下拉式列表等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生事件的对象。l监视器需要一个对象对事件源进行监视,以便对发生的事件作出处理。事件源通过调用相应的方法将某个对象作为自己的监视器。例如,对于文本框,这个方法是:addActionListener(监视器);创建该监视器对象的类必须声明实现相
8、应的接口创建该监视器对象的类必须声明实现相应的接口 l处理事件的接口在文本框获得输入焦点之后,如果用户按回键,Java运行系统就自动用ActionEvent类创建了一个对象,即发生了ActionEvent事件 当事件源发生事件时,监视器就自动调用执行被类实现的某个接口方法 处理事件示意图处理事件示意图 7.4按钮与标签按钮与标签l标签的功能是只显示文本,不能动态地编辑文本。Lalel类的实例就是一个标签.lJava.awt包中的Button类是专门用来建立按钮的。即Button类创建的一个对象就是一个按钮。l按钮可以发生ActionEvent事件,当按钮获得监视器之后,用鼠标单击按钮,就发生A
9、ctionEven事件.7.5菜单项菜单项l单击某个菜单项可以发生ActionEvent事件,因此,我们可以通过处理ActionEvent事件实现我们想要进行的操作。l可以使用MenuShotcut类为菜单项设置快捷键,该类的一个构造方法是:MenuShotcut(int key);其中key可以取值:KeyEvent.VK_A KeyEvent.VK_Z;l菜单项使用setShortcut(MenuShortcut k)方法来设置快捷键。7.6文本区文本区ljava.awt包中的类TextArea类是专门用来建立文本区的,即TextArea创建的一个对象称做一个文本区。用户可以在文本区输入多
10、行的文本。1.TextArea类主要方法类主要方法 lTextArea(int x,int y)使用这个构造方法创建文本区对象,文本框可见行数和列数数分别为x和y。文本区有水平和垂直滚动条。lpublic void setText(String s)文本区对象调用该方法可以将文本区中的文本设置为参数s指定的文本,文本区中先前的文本将被清除。lpublic String getText()文本区对象调用该方法可以获取文本区中的文本。lpublic void append(String s)文本区对象调用该方法可以在文本区中尾加文本.laddTextListener(TextListener)文本
11、区对象调用该方法可以向文本框增加文本监视器。.文本区上的文本区上的TextEvent事件事件 l对于文本区事件源,可以发生TextEvent事件。当文本区获得监视器之后,在文本区域中改变文本的内容,如键入字符、删除字符时,TextEvent类将自动创建一个事件对象。l发生TextEvent事件的事件源获得监视器的方法是addTextListener(监视器);,由于文本区可以发生TextEvent事件,所以TextArea类提供了addTextListener方法。l处理发生TextEvent 事件的接口是TextListener,该接口中只有一个的方法:textValueChanged(Te
12、xtEvent e)l创建文本区监视器的类必须要实现TextListener接口。当文本区发生TextEvent事件时,监视器将自动调用方法:textValueChanged(TextEvent e)对发生的事件作出处理。7.7面板面板ljava.awt包的Panel类是Container(容器)的子类,因此Panel类及其子类的实例也是一个容器,Panel型容器的默认布局是FlowLayout型布局。Panel类创建的对象称做面板,我们经常在一个面板里添加若干个组件后,再把面板放到另一个容器里。ljava.awt包中的ScrollPane类也是Container类的子类,因此该类创建的对象也
13、是一个容器,称为滚动面板。我们可以把一个组件放到一个滚动面板中,然后通过滚动条来观察这个组件。与Panel创建的容器所不同的是,ScrollPane带有滚动条,而且只能向滚动面板添加一个组件。7.8布局布局l当把组件添加到容器中时,希望控制组件在容器中的位置,这就需要学习布局设计的知识。我们将分别介绍java.awt包中的FlowLayout、BorderLayout、CardLayout、GridLayout布局类和包中的BoxLayout布局类。l容器可以使用方法:setLayout(布局对象);来设置自己的布局。1.FlowLayout布局布局 lFlowLayout类创建的对象称做Fl
14、owLayout型布局。FlowLayout型布局是Panel型容器的默认布局,即Panel及其子类创建的容器对象,如果不专门为其指定布局,则它们的布局就是FlowLayout型布局。l如果一个容器使用这个FlowLayout型布局,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列.2.BorderLayout布局布局 lBorderLayout 布局是Window型容器的默认布局,例如Frame、Dialog都是Window类的子类,它们的默认布局都是BorderLayout 布局。l如果一个容器使用这种布局,那么容器空间简单地划分为东、西、南、北、中五个区域,中
15、间的区域最大。3.CardLayout 布局布局 l使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,就像一叠“扑克牌”每次只能显示最上面一张一样,这个被显示的组件将占据所有的容器空间,依次排序。4.GridLayout布局布局 lGridLayout的布局策略是把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中。GridLayout比较灵活,划分多少网格由程序自由控制,而且组件定位也比较精确l由于GridLayout布局中每个网格都是相同大小并且强制组件与网格的大小相同,使得容器中的每个组件也都是相同的大小,显得很不自然
16、。为了克服这个缺点,你可以使用容器嵌套。.BoxLayout布局布局 l盒式布局的容器将组件排列在一行或一列,这取决于创建盒式布局对象时,是否指定了是行排列还是列排列。l使用行(列)型盒式布局的容器将组件排列在一行(列),组件按加入的先后顺序从左(上)向右(下)排列,容器的两端是剩余的空间。和FlowLayou布局不同的是,使用行型盒式布局的容器只有一行(列),即使组件再多,也不会延伸到下一行(列),这些组件可能会被缩小大小,紧缩在这一行(列)中。7.9画布画布 ljava.awt包中的类Canvas负责创建画布对象。创建画布对象的常用办法是用Canvas的子类来创建画布对象,并在子类中重写父
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java2 实用教程 课件
限制150内