内容正文:
02
界面布局
1.能够掌握 Java 中常用的布局管理器类,如何设置页面的布局管理方式;
2.能够掌握 Java 中常用布局管理器类的使用方法;
学习目标
3. 具有“大局观”, 做一个能掌控全局的人。
如果向界面容器中添加多个组件时,组件将以加入的次序,按行一个一个地放置,当到达容器的右边界时,自动开始在下一行放置控件。这种布局方式就是流式布局。Java 中提供了各种布局管理器类来管理各种组件在容器中的放置状态。它会根据平台来调整组件的大小,具有很好的平台无关性。每一个容器有自己默认的布局管理器。
Java 中的布局管理器有: FlowLayout(流式布局管理器)、 GridLayout(网格布局管理器)、 BorderLayout(边界布局管理器)、 CardLayout(卡片布局管理器)、 BoxLayout(盒布局管理器)和 GridBayLayout(网格包布局管理器)等。
一、 FlowLayout 流式布局
默认状态下, FlowLayout 管理器使控件对准每一行的中心,其构造函数如下:
FlowLayout():创建一个流布局管理器 , 位置以中心对齐并在组件之间留以 5 像素的水平和垂直间隔 ;FlowLayout(int align):创建一个流布局管理器 , 位置按所指定的对齐方式 align 对齐使用指定的对齐方式 (FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.Center), 水平和垂直间距为缺省值 5 像素 ;FlowLayout(int align, int hgap, int vgap):创建一个流布局管理器 , 位置按所指定的对齐方式 align 对齐并在组件之间留以 hgap 和 vgap 指定的水平和垂直间隔。
二、 GridLayout 网格布局
GridLayout(网格布局管理器)是 FlowLayout 的扩展, GridLayout 把显示区域编组为矩形格子,然后把组件从左至右,从上到下地放入每个格子。网格布局管理器和流布局管理器不同的是它按指定的行列数自动换行。在默认状态下, GridLayout 管理器使控件对准每一矩形格的中心。
GirdLayout 的构造函数如下:
GridLayout():创建一个默认为 1 行的网格布局管理器 ;
GridLayout(int rows, int cols):创建一个指定行列数的网格布局管理器 ;
GridLayout(int rows, int cols, int hgap, int vgap):创建一个指定行列数和水平、
垂直间距的网格布局管理器。
网格布局管理器的一个显著特点是其组件将占满容器的整个区域,当窗口大小改变时,组件的大小也会随着改变。
三、 BorderLayout 边界布局
JFrame 容器的默认布局管理器是 BorderLayout(边界布局管理器),其布局方式按上北( North)、下南( South)、左西( West)、右东( East)和中( Center)五个方位布局。
BorderLayout 的构造函数如下:
BorderLayout():创建一个边界布局管理器 , 各组件间的水平和竖直间距为缺省值 0 个像素 ;
BorderLayout(int hgap, int vgap):以指定的水平和垂直间距创建一个边界布局管理器。
03
事件监听
学习目标
1. 能够理解 Java 的事件处理机制;
2. 能够掌握 Java 中事件响应和处理的方法;
一般情况下,组件(事件源)都不处理自己的事件,而是将事件处理委托给外部的处理实体(监听器),这种事件处理模型称为事件的授权处理模型。不同的事件,可以交由不同类型的监听器去处理。具体的事件监听处理工作流程如图所示。
一、监听器接口: XxxxListener
当用户按下键盘或单击鼠标按钮,使用户和应用程序交互时,就产生一个事件,操作系统自动捕获这种事件和与它有联系的数据,然后将这种数据以事件对象的形式传到该事件所属的事件处理程序。
事件对象包括事件的种类(如按键、单击鼠标、移动鼠标、关闭窗口等)、产生事件的组件(如按钮、框架、列表等)和产生事件的事件。
事件处理程序是理解和处理事件的一种方法,即实现在接口中定义的方法,事件处理程序的方法以事件对象为参数。所有的事件类和接口都放置在 java.awt.event 包中。
常见的事件类型有:
ItemEvent:项目事件,如选中某个项目;
AdjustmentEvent:调节事件,如移动滚动条;