Java语言程序设计基础教程精(第6章)ppt课件

上传人:资****亨 文档编号:145849776 上传时间:2020-09-24 格式:PPT 页数:94 大小:1.20MB
返回 下载 相关 举报
Java语言程序设计基础教程精(第6章)ppt课件_第1页
第1页 / 共94页
Java语言程序设计基础教程精(第6章)ppt课件_第2页
第2页 / 共94页
Java语言程序设计基础教程精(第6章)ppt课件_第3页
第3页 / 共94页
Java语言程序设计基础教程精(第6章)ppt课件_第4页
第4页 / 共94页
Java语言程序设计基础教程精(第6章)ppt课件_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《Java语言程序设计基础教程精(第6章)ppt课件》由会员分享,可在线阅读,更多相关《Java语言程序设计基础教程精(第6章)ppt课件(94页珍藏版)》请在金锄头文库上搜索。

1、.,第6章Java 程序设计概述,6.1 Java的GUI 6.2用AWT生成图形化用户界面 6.3常用容器 6.4布局管理器 6.5 AWT事件处理模型 6.6 AWT常用组件,.,6.1 Java的GUI,图形用户界面(Graphics user interface,GUI)是指用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便操作程序,并将系统运行的结果以图形方式显示给用户的技术。 目前Java主要提供了两个处理图形用户界面的类库:java.awt和javax.swing。,.,设计和实现图形用户界面的工作主要有: 一是应用的外观设计,即创建组成图形界面的各部件,指定其位

2、置和属性关系,构成完整的图形用户界面 二是处理与用户的交互事件,包括定义各部件对不同事件的响应处理。,.,按 下,按钮动作事件,回 车,文本事件,设计顺序: 1、窗口布局 2、为组件注册事件监听器 3、监听器设计(事件处理代码) 需要了解: 1、布局控制方法 2、了解每种组件常用方法和可触发的事件 3、了解每种事件对应的监听器,.,import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class FrameClick extends Frame But

3、ton b1=new Button(单击); int n=0; public FrameClick (String name) super(name); this.setLayout(new FlowLayout); this.add(b1); b1.addActionListener(new B1Listener(); this.setSize(200,200); this.setVisible(true); ,窗口类,为按钮注册事件监听器,.,class B1Listener implements ActionListener public void actionPerformed(Act

4、ionEvent e) if (e.getSource()=b1) n+; b1.setLabel(单击+n+次); validate(); public static void main(String args) new FrameClick(Click Button!); ,.,6.2用AWT生成图形化用户界面,.,表6-1 Component类常用方法,.,.,6.3 常用容器,容器java.awt.Container 本身也是一个组件,具有组件的所有性质 但是它的主要功能是容纳其它组件和容器 容器通过add()方法向容器中添加组件。 有三种类型的常用容器: Frame、 Panel、

5、ScrollPane。,.,6.3.1 Frame,Frame类是Container类的间接子类 可以向窗口添加组件 顶层容器,不容许被添加 默认布局是BorderLayout 产生WindowEvent事件,.,Frame常用方法,1Frame() 2Frame(String s) 3public void setBounds(int a,int b,int width,int height) 4public void setSize(int width,int height) 5public void setVisible(boolean b) 6public void setResiza

6、ble(boolean b) 7. public void pack();,.,P132 【例6-1】Frame容器例子,.,6.3.2 Panel 面板,java.awt.Panel类 Container(容器)的子类,属内层容器 在外层容器内部实现分块布局 默认布局是FlowLayout布局 常用方法同Frame java.awt.ScrollPane类滚动面板,.,P133 【例6-2】使用Panel容器,.,6.3.3 ScrollPane,java.awt.ScrollPane滚动面板 通过滚动条来观察每个组件 只能向滚动面板添加一个组件 构造方法 ScrollPane() Scro

7、llPane(int a) a的取值: 1)SCROLLBARS_ALWAYS 、 2)SCROLLBARS_AS_NEEDED、 3)SCROLLBARS_NEVER,.,P134【例6-3】使用ScrollPane容器,.,6.4 布局管理器,布局管理器(LayoutManager)用来管理组件在容器中的布局 具有良好的平台无关性,实现跨平台的特性 获得动态的布局效果 容器可以通过选择不同的布局管理器来决定布局分布模式 布局管理器主要包括: FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout,.,程序中安排组件的位置和大小

8、时,应注意 1布局管理器负责各个组件的大小和位置,用户无法通过setLocation(),setSize(),setBounds() 等方法,设置组件的这些属性。这些设置都会被布局管理器屏蔽。 2. 注意窗口变化时,组建的变化规律 3如果用户确实需要亲自设置组件大小或位置,则应调用setLayout(null)方法取消该容器的布局管理器。,修改前一个案例,测试,.,为容器定义布局管理器过程,1. 创建布局管理器: FlowLayout fl=new FlowLayout(); 2. 使用容器的setLayout方法设置布局 con.setLayout(fl); 调用容器的add()方法将组件加

9、入容器 con.add(b1);,.,6.4.1 FlowLayout 流式布局,java.awt.FlowLayout 是Panel和Applet的默认的布局管理器 组件的布局规律是先从左至右排满第一行,再排第二行,以此类推,.,构造方法:,FlowLayout(int align, int hgap, int vgap ); 第一个参数设置组件的水平对齐方式 第二个参数是组件之间的横向间隔 第三个参数是组件之间的纵向间隔 FlowLayout(int align); 横向间隔和纵向间隔都是缺省值5个像素。 FlowLayout(); 默认居中对齐,横向和纵向间隔为5个像素,Align的取值

10、: static int FlowLayout.CENTER static int FlowLayout.LEFT static int FlowLayout.RIGHT,.,FlowLayout常用方法:,setAlignment(int align) setHgap(int hgap) setVgap(int vgap),.,P136【例6-5】FlowLayout布局管理器,.,BorderLayout 框架布局,BorderLayout Window、Frame和Dialog的缺省布局管理器 把容器分成5个区域:布局常量EAST、WEST 、NORTH、SOUTH、CENTER 每个区

11、域只能放置一个组件。 构造方法: public BorderLayout() public BorderLayout(int hgap, int vgap),.,BorderLayout常用方法,setHgap(int hgap) setVgap(int vgap) 向一个使用BorderLayout布局的容器con中添加组件b Con.add(b,BorderLayout.CENTER) Con.add(BorderLayout.CENTER,b),.,P137【例6-7】BorderLayout布局管理器,.,6.4.3 GridLayout 网格布局,把容器划分成若干行乘若干列的网格区域

12、 每个网格都是相同大小并且强制组件与网格的大小相同 为了克服这个缺点,可以使用容器嵌套 组件定位比较精确 构造方法: GridLayout( ) GridLayout(int rows, int cols ) GridLayout(int rows, int cols,int hgap, int vgap ),.,GridLayout常用方法,setColumns(int cols) setRows(int rows) setVgap(int vgap) setHgap(int hgap),.,P138【例6-8】GridLayout布局管理器,.,6.4.4 CardLayout 牌布局,C

13、ardLayout牌布局管理器 象一副叠得整整齐齐的扑克牌一样 每次只能看见最上面的一张牌 每张牌占据每一层整个大小,.,CardLayout常用方法,将组件添加入使用CardLayout布局的容器内 con.add(String s,Component b) con.add(Component b,String s) card.show(con,s) card.first(con) card.last(con) card.previous(con) card.next(con),.,P139【例6-9】CardLayout布局管理器,.,.,6.4.6 总结,Frame是一个顶级窗口。缺省布

14、局管理器为BorderLayout Panel 内层容器中。缺省布局管理器为FlowLayout。 使用容器嵌套可达到设计复杂用户界面的目的 如果采用无布局管理器 setLayout(null),则必须使用setLocation(); setSize(); setBounds()等方法手工设置组件的大小和位置,但是此方法会导致平台相关,不鼓励使用,.,Public class NullLayout public NullLayout() Frame f=new Frame(); f.setLayout(null); Button b1=new Button(“one”); Button b2=

15、new Button(“two”); b1.setBounds(50,80,80,30); b2.setBounds(50,150,80,30); f.add(b1); f.add(b2); f.setBounds(20,20,200,200); f.setVisible(true); ,New NullLayout();,.,6.5 AWT事件处理模型,前面的主要内容是如何放置各种组件,使图形界面更加丰富多彩,但是还不能响应用户的任何操作,要能够让图形界面接收用户的操作,就必须给各个组件加上事件处理机制。,.,6.5.1事件处理机制,在事件处理的过程中,涉及三类对象: 事件:用户在组件上的交

16、互性操作,用类表示 事件源:能够产生事件的对象,通常是各个组件,例如按钮Button、TextField等。 事件监听器:接收事件对象并对其进行处理的对象。监听器必须实现相应监听器接口 。 为事件源指定事件监听器,即事件处理对象:事件源.addXXListener(事件监听器对象),.,Java事件处理模型,.,使用授权处理模型进行事件处理的一般方法归纳如下: 1对于某类事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener,在接口的相应事件处理方法中完成事件的处理; 2组件创建后,必须为组件注册该组件的事件的监听器,使用注册监听器方法指定 组件.addXXXListener(XXXListener ),.,6.5.2事件类,AWT的相关事件继承于java.awt.AWTEvent类 AWT事件分为两大类:低级事件和高级事件。,.,1低级事件,组件事件(ComponentEvent):组件尺寸的变化,移动。 容器事件(C

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

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

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