java基础第9章幻灯片

上传人:F****n 文档编号:88135150 上传时间:2019-04-19 格式:PPT 页数:42 大小:808KB
返回 下载 相关 举报
java基础第9章幻灯片_第1页
第1页 / 共42页
java基础第9章幻灯片_第2页
第2页 / 共42页
java基础第9章幻灯片_第3页
第3页 / 共42页
java基础第9章幻灯片_第4页
第4页 / 共42页
java基础第9章幻灯片_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《java基础第9章幻灯片》由会员分享,可在线阅读,更多相关《java基础第9章幻灯片(42页珍藏版)》请在金锄头文库上搜索。

1、第九章 GUI,AWT事件处理机制 布局管理器,常用事件 常用Swing组件,第九章 GUI,GUI全称是Graphical User Interface,即图形用户界面,即应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素 GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing Swing不仅实现了AWT中的所有功能,而且提供了更加丰富的组件和功能,足以满足GUI设计的一切需求。,9.1 AWT概述,AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、

2、对话框等。这些组件都位于java.awt包中。,9.1 AWT概述,Window类是不依赖其它容器而独立存在的容器,它有两个子类,分别是Frame类和Dialog类。Frame类用于创建一个具有标题栏的框架窗口,作为程序的主界面,Dialog类用于创建一个对话框,实现与用户的信息交互,9.1 AWT概述,Panel也是一个容器,但是它不能单独存在,只能存在其它容器(Window或其子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳其它组件,9.2 AWT事件处理,9.2.1 事件处理机制 事件处理机制专门用于响应用户的操作,比如,想要响应用户的点击鼠标、按下键盘等操作,就

3、需要使用AWT的事件处理机制,事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。,事件源(组件):事件发生的场所,通常就是产生事件的组件,监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出响应处理的对象(对象中包含事件处理器),事件处理器:监听器对象对接收的事件对象进行相应处理的方法,9.2 AWT事件处理,9.2.1 事件处理机制,9.2 AWT事件处理,9.2.2 事件适配器,例程9-3实现了和例程9-2相同的功能。定义的MyWindowAdapter类继承了适配器类WindowAdapter,由于实现的功能是关闭窗口,因此只需要对w

4、indowClosing()方法进行重写即可。需要注意的是,几乎所有的监听器接口都有对应的适配器类,通过继承适配器类来实现监听器接口时,需要处理哪种事件,直接重写该事件对应的方法即可。,9.2 AWT事件处理,9.2.3 用匿名内部类实现事件处理,9.3 常用事件分类,9.3.1 窗体事件 WindowEvent用于表示这些窗体事件,在应用程序中,当对窗体事件进行处理时,首先需要定义一个类实现WindowListener接口作为窗体监听器,然后通过addWindowListener()方法将窗体对象与窗体监听器绑定,9.3 常用事件分类,9.3.2 鼠标事件 MouseEvent类用于表示鼠标

5、事件,几乎所有的组件都可以产生鼠标事件,鼠标事件包括鼠标按下、鼠标松开、鼠标单击等。 对鼠标事件的处理可通过实现MouseListener接口或者继承适配器MouseAdapter类,然后调用addMouseListener()方法将监听器绑定到事件源对象,9.3 常用事件分类,9.3.3 键盘事件 键盘操作也是最常用的用户交互方式,例如键盘按下、释放等,这些操作被定义为键盘事件 KeyEvent类表示键盘事件,处理KeyEvent事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类。,9.3 常用事件分类,9.3.4 动作事件 在Java中,动作事件用Action

6、Event类表示,处理ActionEvent事件的监听器对象需要实现ActionListener接口,但监听器对象在监听动作时,不会像鼠标事件一样处理鼠标个别的移动和单击的细节,而是去处理“按钮按下”这样“有意义”的事件。,9.4 布局管理器,9.4.1 FlowLayout FlowLayout是流式布局管理器,它是最简单的布局管理器。 使用FlowLayout布局管理器时,容器会将组件按照添加顺序从左向右放置。当到达容器的边界时,会自动将组件放到下一行的开始位置。这些组件可以左对齐、居中对齐(默认方式)或右对齐的方式排列,表9-1中,列出了FlowLayout的三个构造方法,其中,参数al

7、ign决定组件在每行中相对于容器边界的对齐方式,可以使用该类中提供的常量作为参数传递给构造方法,其中FlowLayout.LEFT用于表示左对齐、FlowLayout.RIGHT用于表示右对齐、FlowLayout.CENTER用于表示居中对齐。参数hgap和参数vgap分别设定组件之间的水平和垂直间隙,可以填入一个任意数值。接下来通过一个添加按钮的案例来学习一下FlowLayout布局管理器的用法,如例程9-8所示。,9.4 布局管理器,9.4.1 FlowLayout,FlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列,不需要用户明确的设定,但是在灵活性上相对差了

8、点。例如将图中的窗体拉伸变宽,按钮的大小和按钮之间的间距将保持不变,但按钮相对与容器边界的距离会发生变化,9.4 布局管理器,9.4.2 BorderLayout BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。组件可以被放置在这五个区域的中任意一个。,9.4 布局管理器,9.4.2 BorderLayout,9.4 布局管理器,9.4.3 GridLayout GridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网格,每个网格中放置

9、一个组件。 添加到容器中的组件首先放置在第1行第1列(左上角)的网格中,然后在第1行的网格中从左向右依次放置其它组件,行满后,继续在下一行中从左到右放置组件,9.4 布局管理器,9.4.3 GridLayout,9.4 布局管理器,9.4.4 GridBagLayout GridBagLayout(网格包布局管理器)与GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。,9.4 布局管理器,9.4.4 GridBagLayout 使用GridBagLayout布局管理器的步骤如下:,9.4 布局管理器,9.4.5 CardLayo

10、ut CardLayout(卡片布局管理器)将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。 CardLayout的常用方法如下所示。,9.4 布局管理器,9.4.6 不使用布局管理器 如果不希望通过布局管理器对容器进行布局,可以调用容器的setLayout(null)方法,将布局管理器取消。 不使用布局管理器时,程序必须调用容器中每个组件的setSize()和setLocation()方法或者是setBounds()方法(这个方法接收四个参数,分别是左上角的x、y坐标和组件的长、宽)来为这些组件在容器中定位,9.5 AWT绘图,在java.awt包中专门

11、提供了一个Graphics类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法,使用Graphics类的方法就可以完成在组件上绘制图形,9.6 Swing,学习Swing组件的过程和学习AWT差不多,大部分的Swing组件都是JComponent类的直接或者间接子类,而JComponent类是AWT中java.awt.Container的子类,9.6 Swing,9.6.1 JFrame JFrame和Frame一样是一个独立存在的顶级窗口,不能放置在其它容器之中,JFrame支持通用窗口所有的基本功能,例如窗口最小化、设定窗口大小等等,9.6 Swing,9.6.2 JDialog JD

12、ialog是Swing的另外一个顶级窗口,它和Dialog一样都表示对话框 JDialog对话框可分为两种:模态对话框和非模态对话框。 所谓模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口交互 非模态对话框允许用户在处理对话框的同时与其它窗口交互。,9.6 Swing,9.6.2 JDialog Jdialog的构造方法 JDialog的构造方法中都需要接收一个Frame类型的对象,表示对话框所有者,如果该对话框没有所有者,参数owner可以传入null。 参数modal用来指定JDialog窗口是模态还是非模态,如果modal值设置为true,对话框就是模态对话框,反之则是非模态对

13、话框。默认情况下, modal的值为false,9.6 Swing,9.6.3 中间容器 常见的中间容器包括JPanel和JScrollPane Jpanel:和AWT中的Panel组件使方法基本一致,它是一个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是FlowLayout。当然也可以使用构造函数JPanel(LayoutManager layout)或者它的setLayout()方法为其制定布局管理器。 JScrollPane :带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想往JScrollPane面板中添加多个组件,应该先将组件添加到JPanel中,然后将

14、JPanel添加到JScrollPane中,9.6 Swing,9.6.4 文本组件 文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JTextComponent,JTextComponent是一个抽象类,它提供了文本组件常用的方法,9.6 Swing,9.6.4 文本组件 JTextComponent 类有两个子类,分别是JTextField和JTextArea JTextField:称为文本框,它只能接收单行文本的输入 JTextArea:JTextArea称为文本域,它能接收多行的文本的输入,9.

15、6 Swing,9.6.5 按钮组件 常见的按钮组件有JButton、JCheckBox、JRadioButton等,它们都是抽象类AbstractButton类的直接或间接子类 在AbstractButton类中提供了按钮组件通用的一些方法,9.6 Swing,9.6.5 按钮组件 JCheckBox组件被称为复选框,它有选中(是)/未选中(非)两种状态,如果用户想接收的输入只有“是”和“非”,则可以通过复选框来切换状态。如果复选框有多个,则用户可以选中其中一个或者多个。,9.6 Swing,9.6.5 按钮组件 JRadioButton组件被称为单选按钮,与JCheckBox复选框不同的是

16、,单选按钮只能选中一个,就像收音机上的电台选择按钮,当按下一个,先前按下的按钮就会自动弹起,对于JRadioButton按钮来说,当一个按钮被选中时,先前被选中的按钮就会自动取消选中。,9.6 Swing,9.6.6 JComboBox JComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。 创建JComboBox对象的构造方法如下所示:,9.6 Swing,9.6.6 JComboBox JComboBox的常见方法如下所示:,9.6 Swing,9.6.7 菜单组件 菜单组件分为下拉式菜单和弹出式菜单 下拉式菜单包括JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项),9.6 Swing,9.6.7 菜单组件 JMenuBar:表示一个水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。 JMenu:表示一个菜单,它用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。,9.6 Swing,9.6.7 菜单组件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号