Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07

上传人:E**** 文档编号:89156280 上传时间:2019-05-19 格式:PPT 页数:36 大小:2.09MB
返回 下载 相关 举报
Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07_第1页
第1页 / 共36页
Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07_第2页
第2页 / 共36页
Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07_第3页
第3页 / 共36页
Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07_第4页
第4页 / 共36页
Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07》由会员分享,可在线阅读,更多相关《Java程序设计与实训 教学课件 ppt 作者 黄能耿 PPT电子教案 java-07(36页珍藏版)》请在金锄头文库上搜索。

1、程序设计,第7章 图形用户界面,2,学习目标,了解GUI编程。 熟悉组件和容器。 掌握常用的布局管理器。 理解事件处理模型。 掌握事件处理。 理解事件类、事件监听器。,3,重难点,重点 组件。 容器。 布局管理器。 事件处理模型。 事件处理。 事件类、事件监听器。 难点 组件。 布局管理器。 事件处理模型。 事件类、事件监听器。,4,目录,7.1 GUI介绍,7.2 容器、组件和布局管理器,7.3 事件处理,7.4 简单绘图,7.5 Applet编程,5,7.1 GUI介绍,java.awt Java 1.0推出 在许多方面有不足 javax.swing Java 1.1推出 在awt的基础上

2、作了较大改进 swing不能替代awt SWT IBM开发的GUI组件,Eclipse是用SWT开发的,6,AWT举例,一个最简单的GUI程序 基本过程 引入需要用到的包(java.awt) 定义并创建一个顶层容器(Frame) 定义并创建组件(Button、Label) 将组件添加到容器中 设置窗口大小,并使其可见 默认情况下,窗体对关闭事件不作任何响应,import java.awt.*; public class AwtDemo public static void main(String args) Frame frame = new Frame(); / 声明和创建一个窗体,Fram

3、e Button button = new Button(“An AWT button.“); / 声明和创建一个按钮,Button frame.add(button); / 将button添加到frame上 frame.setSize(200,100); / 设置frame的大小 frame.setVisible(true); / 设置frame可见 ,7,Swing举例,一个最简单的GUI程序 基本过程与AWT版本几乎完全相同 引入的包是java.swing 顶层容器是JFrame 有对应的组件,名称前加J:JButton、JLabel 可以设置窗体对关闭事件的响应,import java

4、x.swing.*; public class SwingDemo public static void main(String args) JFrame frame = new JFrame(); / 与AWT版本几乎完全相同 JButton button = new JButton(“A swing button.“); frame.add(button); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 不同的是增加关闭时的处理 frame.setSize(200,100); frame.setVisible(true); ,

5、frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 不同的是增加关闭时的处理,8,7.2容器、组件和布局,组件Component 以图形化的方式显示在屏幕上并能够与用户进行交互的对象 常见的组件 按钮 标签 文本框等 容器Container 一种特殊的组件,能够容纳其它组件或容器的组件 容器分为 顶层容器 普通容器 布局管理器Layout 管理组件在容器中布局的手段,9,组件间的继承关系,容器,组件,10,顶层容器,每个Java GUI应用程序必须至少包含一个顶层容器组件 JWindows:比较简单,一般我们用它的子类JFrame JF

6、rame:一般作为主窗口使用,具有标题、最小化、最大化及并闭按钮 JDialog:对话框,它是依赖于另一个窗口的顶级窗口 JApplet:专用于applet中,即applet的显示区域,11,普通容器,普通容器不能独立存在,必须依赖于其它容器 作为一种中间层容器,普通容器可以容纳其它容器或组件 在Swing中,这类容器有 JPanel JScrollPane JSplitPane JTablePane JToolBar,12,常用组件,按钮 标签 文本框,13,布局管理器,布局管理的方式 绝对位置和绝对大小 相对位置和相对大小 采用相对位置和大小会使外观更加美观 布局管理器 每种容器都有一个默

7、认的布局管理器 也可以为窗口指定新的布局管理器。 常用的布局管理器有 FlowLayout, BorderLayou, GridLayout,14,常见的布局管理器,FlowLayout 位置改变,大小不变,BorderLayout 位置不变,大小改变,GridLayout 位置不变,大小改变,东南西北中,三行二列,15,FlowLayout,是最简单的一种布局管理器 将组件一个接一个地从左到右,从上到下地依次排列 是Panel,JPanel和Applet的默认布局管理器,class FlowLayout_Example public static void main(String args)

8、 JFrame frame = new JFrame(); frame.setSize(250, 100); frame.setLayout(new FlowLayout(); frame.add(new JButton(“按钮1“); frame.add(new JButton(“按钮2“); frame.add(new JButton(“按钮3“); frame.add(new JButton(“按钮4“); frame.add(new JButton(“按钮5“); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.s

9、etVisible(true); ,FlowLayout 位置改变,大小不变,16,BorderLayout,以东南西北中五个位置来定位组件 是Window, Dialog和Frame的默认布局管理器,class BorderLayout_Example public static void main(String args) JFrame frame = new JFrame(); frame.setSize(250, 150); frame.setLayout(new BorderLayout(); frame.add(BorderLayout.SOUTH, new JButton(“按钮

10、S“); frame.add(BorderLayout.NORTH, new JButton(“按钮N“); frame.add(BorderLayout.EAST, new JButton(“按钮E“); frame.add(BorderLayout.WEST, new JButton(“按钮W“); frame.add(BorderLayout.CENTER, new JButton(“按钮“); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); ,BorderLayout 位置不变,

11、大小改变,17,GridLayout,是一种将显示区域分为行和列的布局 不是任何容器的默认布局管理器,class GridLayout_Example public static void main(String args) JFrame frame = new JFrame(); frame.setSize(250, 150); frame.setLayout(new GridLayout(3, 2); / 3行2列 frame.add(new JButton(“按钮1“); frame.add(new JButton(“按钮2“); frame.add(new JButton(“按钮3“)

12、; frame.add(new JButton(“按钮4“); frame.add(new JButton(“按钮5“); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); ,GridLayout 位置不变,大小改变,18,null布局管理器,null布局管理器 没有布局管理器 需要自行定义布局,指定大小和绝对位置,import javax.swing.*; public final class Demo public static void main(String args) JFram

13、e frame = new JFrame(); frame.setSize(250, 150); frame.setLayout(null); / 空的布局管理器 JButton jb1 = new JButton(“按钮1“); jb1.setSize(120, 50); JButton jb2 = new JButton(“按钮2“); jb2.setSize(140, 80); jb2.setLocation(90, 40); frame.add(jb1); frame.add(jb2); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLO

14、SE); frame.setVisible(true); ,19,复杂的布局管理,容器可以嵌套使用 各个容器可以使用不同的布局管理器 从而形成复杂的组件布局 BorderLayout形成主要结构 北方是Label 中部是文本区 东面是一个Panel 其中有二个Panel 一个是一组多选框 一个是一组单选框 南方和西面空缺 当改变窗口大小时,相对位置不变,20,7.3 事件处理,通过事件响应用户的操作,如键盘操作、鼠标操作 事件:对用户操作的描述,如与键盘操作对应的是键盘事件 事件源:发生事件的场所,通常是某个组件,如一个Button 事件处理器:接收事件对象并对其进行处理的对象 事件处理流程

15、新建一个组件并添加到相应的容器 新建一个JButton的实例,并添加到一个JFrame 在监听器中定义处理事件的方法 通过继承WindowAdapter适配器,创建一个监听器 在监听器中定义windowClosing()方法,处理点击关闭窗口动作 注册监听器以监听组件产生的事件 通过addWindowListener()注册上述监听器 响应用户 用户点击关闭窗口时,监听器将给予响应,21,监听器的三种写法,外部类 监听器可以复用 内部类 封装性好,可以访问外部类的属性和方法 匿名类 当监听器的代码较少,可以提高可读性,22,事件处理(外部类),监听器CloseMe 继承WindowAdapte

16、r 监听器是一个外部类,package org.ngweb.java.chapt07.event; import java.awt.*; import java.awt.event.*; public class EventDemo1 public static void main(String a) Frame frame = new Frame(); Button button = new Button(“An AWT button.“); frame.add(button); frame.setSize(200,100); frame.addWindowListener(new CloseMe(); / 注

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

当前位置:首页 > 高等教育 > 大学课件

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