Java基础第9章ppt课件.ppt

上传人:小飞机 文档编号:1480954 上传时间:2022-11-30 格式:PPT 页数:42 大小:1.08MB
返回 下载 相关 举报
Java基础第9章ppt课件.ppt_第1页
第1页 / 共42页
Java基础第9章ppt课件.ppt_第2页
第2页 / 共42页
Java基础第9章ppt课件.ppt_第3页
第3页 / 共42页
Java基础第9章ppt课件.ppt_第4页
第4页 / 共42页
Java基础第9章ppt课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Java基础第9章ppt课件.ppt》由会员分享,可在线阅读,更多相关《Java基础第9章ppt课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、第九章 GUI,AWT事件处理机制布局管理器,常用事件常用Swing组件,第九章 GUI,GUI全称是Graphical User Interface,即图形用户界面,即应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和SwingSwing不仅实现了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 事件处理机制事件处理机制专门用于响应用户的操作,比如,想要响应用户的点击鼠标、按下键盘等操作,就需要使用A

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

4、Closing()方法进行重写即可。需要注意的是,几乎所有的监听器接口都有对应的适配器类,通过继承适配器类来实现监听器接口时,需要处理哪种事件,直接重写该事件对应的方法即可。,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中,动作事件用ActionEvent类表示,处理

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

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

8、宽,按钮的大小和按钮之间的间距将保持不变,但按钮相对与容器边界的距离会发生变化,9.4 布局管理器,9.4.2 BorderLayoutBorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是东(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 CardLayoutCardLayout(卡片

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

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

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

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

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

15、n、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 JComboBoxJComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。创建JComboBox对象的构造方法如下所示:,9.6 Swing,9.6.6 JComboBoxJComboBox的常见方法如下所示:,9.6 Swing,9.6.7 菜单组件菜单组件分为下拉式菜单和弹出式菜单下拉式菜单包括JMenuBar(菜单栏)

17、、JMenu(菜单)和JMenuItem(菜单项),9.6 Swing,9.6.7 菜单组件JMenuBar:表示一个水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。JMenu:表示一个菜单,它用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。,9.6 Swing,9.6.7 菜单组件JMenuItem:JMenuItem表示一个菜单项,它是菜单系统中最基本的组件。和JMenu菜单一样,在创建JMenuItem菜单项时,通常会使用JMenumItem(String text)这个构造方法为菜单项指定文本内容创建下拉式菜单的步骤如下所示:1、创建一个JMenuBar菜单

18、栏对象,将其放置在JFrame窗口的顶部2、创建JMenu菜单对象,将其添加到JMenuBar菜单栏中3、创建JMenuItem菜单项,将其添加到JMenu菜单中,9.6 Swing,9.6.7 菜单组件在Java的Swing组件中,弹出式菜单用JPopupMenu表示JPopupMenu弹出式菜单和下拉式菜单一样都通过调用add()方法添加JMenuItem菜单项,但它默认是不可见的,如果想要显示出来,则必须调用它的show(Component invoker,int x,int y)方法,本章主要向初学者讲解了GUI的一些基本原理和开发技巧及思想,主要包括AWT创建GUI的基本方法,AWT的事件处理机制,五种布局管理器,常用的Swing组件等。本章重点在向初学者讲解一些基本的原理和开发技巧以及思想,了解开发GUI程序的步骤。GUI组件有很多种,如果想进一步了解GUI,建议查阅JDK文档中的一些Demo程序,或者下载相关资料来了解其它组件的使用方法,这才是我们对GUI组件甚至其它编程语言的学习之道。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号