Java基础第9章课件.ppt

上传人(卖家):晟晟文业 文档编号:4988463 上传时间:2023-01-31 格式:PPT 页数:42 大小:1.08MB
下载 相关 举报
Java基础第9章课件.ppt_第1页
第1页 / 共42页
Java基础第9章课件.ppt_第2页
第2页 / 共42页
Java基础第9章课件.ppt_第3页
第3页 / 共42页
Java基础第9章课件.ppt_第4页
第4页 / 共42页
Java基础第9章课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效第九章 GUIAWT事件处理机制布局管理器常用事件常用Swing组件让IT教学更简单,让IT学习更有效 目录9 9.1.1AWT概述9.29.2AWT事件处理9.39.3常用事件分类9.49.4布局管理器9.59.5AWT绘图9.69.6Swing让IT教学更简单,让IT学习更有效第九章 GUI GUI全称是Graphical User Interface,即图形用户界面,即应用程序提供给用户操作的图形界面,包括窗口、菜单、按钮、工具栏和其它各种图形界面元素 GUI设计提供了丰富的类库,这些类分别位于java.awt和java

2、x.swing包中,简称为AWT和Swing Swing不仅实现了AWT中的所有功能,而且提供了更加丰富的组件和功能,足以满足GUI设计的一切需求。让IT教学更简单,让IT学习更有效9.1 AWT概述 AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。这些组件都位于java.awt包中。让IT教学更简单,让IT学习更有效9.1 AWT概述 Window类是不依赖其它容器而独立存在的容器,它有两个子类,分别是Frame类和Dialog类。Frame类用于创建一个具有标题栏的框架窗口,作为程序的主界面,Dialog类用于创建一个对话框,

3、实现与用户的信息交互让IT教学更简单,让IT学习更有效9.1 AWT概述 Panel也是一个容器,但是它不能单独存在,只能存在其它容器(Window或其子类)中,一个Panel对象代表了一个长方形的区域,在这个区域中可以容纳其它组件让IT教学更简单,让IT学习更有效9.2 AWT事件处理 9.2.1 事件处理机制事件处理机制 事件处理机制专门用于响应用户的操作,比如,想要响应用户的点击鼠标、按下键盘等操作,就需要使用AWT的事件处理机制事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。事件源(组件):事件发生的场所,通常就是产生事件的组件监听器(Listene

4、r):负责监听事件源上发生的事件,并对各种事件做出响应处理的对象(对象中包含事件处理器)事件处理器:监听器对象对接收的事件对象进行相应处理的方法让IT教学更简单,让IT学习更有效9.2 AWT事件处理 9.2.1 事件处理机制事件处理机制让IT教学更简单,让IT学习更有效9.2 AWT事件处理 9.2.2 事件适配器事件适配器例程9-3实现了和例程9-2相同的功能。定义的MyWindowAdapter类继承了适配器类WindowAdapter,由于实现的功能是关闭窗口,因此只需要对windowClosing()方法进行重写即可。需要注意的是,几乎所有的监听器接口都有对应的适配器类,通过继承适配

5、器类来实现监听器接口时,需要处理哪种事件,直接重写该事件对应的方法即可。让IT教学更简单,让IT学习更有效9.2 AWT事件处理 9.2.3 用匿名内部类实现事件处理用匿名内部类实现事件处理让IT教学更简单,让IT学习更有效9.3 常用事件分类 9.3.1 窗体事件窗体事件 WindowEvent用于表示这些窗体事件,在应用程序中,当对窗体事件进行处理时,首先需要定义一个类实现WindowListener接口作为窗体监听器,然后通过addWindowListener()方法将窗体对象与窗体监听器绑定让IT教学更简单,让IT学习更有效9.3 常用事件分类 9.3.2 鼠标事件鼠标事件 Mouse

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

7、IT学习更有效9.3 常用事件分类 9.3.4 动作事件动作事件 在Java中,动作事件用ActionEvent类表示,处理ActionEvent事件的监听器对象需要实现ActionListener接口,但监听器对象在监听动作时,不会像鼠标事件一样处理鼠标个别的移动和单击的细节,而是去处理“按钮按下”这样“有意义”的事件。让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.1 FlowLayout FlowLayout是流式布局管理器,它是最简单的布局管理器。使用FlowLayout布局管理器时,容器会将组件按照添加顺序从左向右放置。当到达容器的边界时,会自动将组件放到下一行的开始位

8、置。这些组件可以左对齐、居中对齐(默认方式)或右对齐的方式排列表9-1中,列出了FlowLayout的三个构造方法,其中,参数align决定组件在每行中相对于容器边界的对齐方式,可以使用该类中提供的常量作为参数传递给构造方法,其中FlowLayout.LEFT用于表示左对齐、FlowLayout.RIGHT用于表示右对齐、FlowLayout.CENTER用于表示居中对齐。参数hgap和参数vgap分别设定组件之间的水平和垂直间隙,可以填入一个任意数值。接下来通过一个添加按钮的案例来学习一下FlowLayout布局管理器的用法,如例程9-8所示。让IT教学更简单,让IT学习更有效9.4 布局管

9、理器 9.4.1 FlowLayoutFlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列,不需要用户明确的设定,但是在灵活性上相对差了点。例如将图中的窗体拉伸变宽,按钮的大小和按钮之间的间距将保持不变,但按钮相对与容器边界的距离会发生变化让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.2 BorderLayout BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。组件可以被放置在这五个区域的中任意一个。让IT教学更简单,

10、让IT学习更有效9.4 布局管理器 9.4.2 BorderLayout让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.3 GridLayout GridLayout(网格布局管理器)使用纵横线将容器分成n行m列大小相等的网格,每个网格中放置一个组件。添加到容器中的组件首先放置在第1行第1列(左上角)的网格中,然后在第1行的网格中从左向右依次放置其它组件,行满后,继续在下一行中从左到右放置组件让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.3 GridLayout 让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.4 GridBagLayout Grid

11、BagLayout(网格包布局管理器)与GridLayout布局管理器类似,不同的是,它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.4 GridBagLayout 使用GridBagLayout布局管理器的步骤如下:让IT教学更简单,让IT学习更有效9.4 布局管理器 9.4.5 CardLayout CardLayout(卡片布局管理器)将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。CardLayout的常用方法如下所示。让IT教学更简单,让IT学习更有效9.4 布局

12、管理器 9.4.6 不使用布局管理器不使用布局管理器 如果不希望通过布局管理器对容器进行布局,可以调用容器的setLayout(null)方法,将布局管理器取消。不使用布局管理器时,程序必须调用容器中每个组件的setSize()和setLocation()方法或者是setBounds()方法(这个方法接收四个参数,分别是左上角的x、y坐标和组件的长、宽)来为这些组件在容器中定位让IT教学更简单,让IT学习更有效9.5 AWT绘图 在java.awt包中专门提供了一个Graphics类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法,使用Graphics类的方法就可以完成在组件上绘制图形让

13、IT教学更简单,让IT学习更有效9.6 Swing 学习Swing组件的过程和学习AWT差不多,大部分的Swing组件都是JComponent类的直接或者间接子类,而JComponent类是AWT中java.awt.Container的子类让IT教学更简单,让IT学习更有效9.6 Swing 9.6.1 JFrame JFrame和Frame一样是一个独立存在的顶级窗口,不能放置在其它容器之中,JFrame支持通用窗口所有的基本功能,例如窗口最小化、设定窗口大小等等让IT教学更简单,让IT学习更有效9.6 Swing 9.6.2 JDialog JDialog是Swing的另外一个顶级窗口,它

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

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

16、到JPanel中,然后将JPanel添加到JScrollPane中让IT教学更简单,让IT学习更有效9.6 Swing 9.6.4 文本组件文本组件 文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JTextComponent,JTextComponent是一个抽象类,它提供了文本组件常用的方法让IT教学更简单,让IT学习更有效9.6 Swing 9.6.4 文本组件文本组件 JTextComponent 类有两个子类,分别是JTextField和JTextAreap JTextField:称为文本框,

17、它只能接收单行文本的输入p JTextArea:JTextArea称为文本域,它能接收多行的文本的输入让IT教学更简单,让IT学习更有效9.6 Swing 9.6.5 按钮组件按钮组件 常见的按钮组件有JButton、JCheckBox、JRadioButton等,它们都是抽象类AbstractButton类的直接或间接子类 在AbstractButton类中提供了按钮组件通用的一些方法让IT教学更简单,让IT学习更有效9.6 Swing 9.6.5 按钮组件按钮组件 JCheckBox组件被称为复选框,它有选中(是)/未选中(非)两种状态,如果用户想接收的输入只有“是”和“非”,则可以通过复

18、选框来切换状态。如果复选框有多个,则用户可以选中其中一个或者多个。让IT教学更简单,让IT学习更有效9.6 Swing 9.6.5 按钮组件按钮组件 JRadioButton组件被称为单选按钮,与JCheckBox复选框不同的是,单选按钮只能选中一个,就像收音机上的电台选择按钮,当按下一个,先前按下的按钮就会自动弹起,对于JRadioButton按钮来说,当一个按钮被选中时,先前被选中的按钮就会自动取消选中。让IT教学更简单,让IT学习更有效9.6 Swing 9.6.6 JComboBox JComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的

19、选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。创建JComboBox对象的构造方法如下所示:让IT教学更简单,让IT学习更有效9.6 Swing 9.6.6 JComboBox JComboBox的常见方法如下所示:让IT教学更简单,让IT学习更有效9.6 Swing 9.6.7 菜单组件菜单组件 菜单组件分为下拉式菜单和弹出式菜单 下拉式菜单包括JMenuBar(菜单栏)、JMenu(菜单)和JMenuItem(菜单项)让IT教学更简单,让IT学习更有效9.6 Swing 9.6.7 菜单组件菜单组件 JMenuBar:表示一个水平的菜单栏,它用来管理菜单

20、,不参与同用户的交互式操作。JMenu:表示一个菜单,它用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。让IT教学更简单,让IT学习更有效9.6 Swing 9.6.7 菜单组件菜单组件 JMenuItem:JMenuItem表示一个菜单项,它是菜单系统中最基本的组件。和JMenu菜单一样,在创建JMenuItem菜单项时,通常会使用JMenumItem(String text)这个构造方法为菜单项指定文本内容 创建下拉式菜单的步骤如下所示:1、创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部 2、创建JMenu菜单对象,将其添加到JMenuBar菜单栏

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

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java基础第9章课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|