1. 简介
在java中,基于GUI的程序需要使用javax.swing包和java.awt包中的类才能被执行
SWT:1.awt:容器,组件,字体,颜色 2.swing:容器,组件(名字为J + awt的名字)
2. 事件处理
1. 委托事件模型
1. 事件原对象(不做任何行为),一个事件源对象可以绑定多个监听器(每个监听器监听不同的事件)
2. 监听者(绑定监听原对象),一个监听器可以监听多个事件源(***Listener 全部为接口)
EventListener父接口 ActionListener点击行为
3. 操作人员
2. 事件分类
消息框 JOprionPane.showMessageDialog(出现的位置, “提示”);
输入框 JOprionPane.showInputDialog(出现的位置, “提示”);
返回String类型,没有输入返回空串,点取消返回空null
确定框 JOptionPane.ShowConfirmDialog(出现的位置, “提示”);
返回int类型,《是》返回0,《否》返回1,《取消》返回2
3. 事件代码实现————匿名内部类
l 步骤:
n 先书写事件源对象
n 根据要处理的事件类型选择相应的事件监听器
n 把功能实现在该监听器的特殊方法里面
n 绑定监听器对象与事件源对象
l 监听器实现方式
n 1.单独书写一个监听器类,实现监听器接口
既可以为每个事件源单独书写监听器类,也可以让有相似功能的事件源共用一个监听器
如果处理时需要用到来自于界面的其他组件或容器,要传参(提供get/set,提供有参构造)。
n 2.让容器类既充当容器又充当监听器,无需书写单独的类
无法为每个事件源单独书写监听器类,只能让不同的事件源共用一个监听器
如果操作当前容器身上的组件或子容器,可以不传参
n 3.匿名内部类
1. 为每个事件源书写单独的监听器,本容器的组件或子容器不用传参
l 适配器其实就是实现了监听器接口的类,它将接口中的抽象方法全部空实现,这样我们在使用时只需直接声明适配器的内部类,重写相应的方法,其他方法无需在管
3. 布局管理器
Null 不使用任何现成的布局管理器,所有的组件/子容器的位置大小。全部由程序员set
1. 边界
BorderLayout
n 窗体内容面板自带
n 把整个容器划分为5个部分(东南西北中,南北要贯通,中间最大)
n 中间最大不仅仅指位置最大=,而且权利也最大(周边不存在,中间要去占领周边;中间不存在,周边不能占领中间)
n 其作用:把一个大的界面划分成多个小的界面,主要是放容器的
2. 流
FlowFrame
n JPanel默认的布局管理器
n 根据从上往下,从左往右,从中间开始的方式,依次放入组件
n 组件的位置会根据容器的大小改变而改变,因此不适用于大面积容器,最好是单行容器
n 组件的大小是根据组件的内容来决定的
n inputText.setColumns(15);在流布局下,设置文本框的宽度
3. 网格
GridFrame
n 将容器按照行列,划分为等大的几个部分
n 当放入的组件或子容器的个数不匹配时优先满足行,列是可以变化的
n 主要用于等分一个大容器为多个等大的小容器
4. 卡片
CardLayout
n 在该容器上贴皮
u 1.得到被设置为要翻页的容器的卡片布局
u 2.调用该卡片布局的方法,完成操作