GUI: 1. 在java中,基于GUI的程序需要使用javax.swing包和java.awt包中的类才能执行
2.AWT的类是使用原始的GUI对象来运行
3.swing包中提供的类加强了对各种操作系统的兼容性。在java中,
对于不同的操作系统,这些类可以更加充分的发挥作用
4.Swings类支持许多AWT中相似的类所不能支持的特性。
5.SWT=Swing+AWT
有容器、组件用Swing,有颜色等用AWT
1.容器与组件
容器:
首层容器可以放容器和组件,下层容器里可以放容器和组件,一层层往容器里放,容器一定要设置布局管理器
任何一个GUI有首层容器
1. JWindow--(JFrame)
2. Joptionpan:弹出框
3. JApplet
组件:
1. 标签:JLabel
2. 文本框:JTextField
3. 密码框:JPasswordField
4. 下拉框:JComboBox
5. 按钮:JButton
6. 单选框:JRadioButton
7. 复选框:JCheckBox
8. 文本域:JTextArea
9. 菜单:JMenu
10. 菜单栏:JMenuBar
11. 菜单项:JmenuTtem
2.布局管理与面板嵌套
布局管理器(layout)
1把界面分成五个部位:东(e)、西(w)、南(south)、北(north)、中(center)
1. **边界布局(border)::JFrame在默认的情况下会自动选择边界布局管理器。适合放容器
2. *流布局(Flow):位置:从左往右,从上到下由中间开始的顺序进行排放,
效果:流布局更适合放组件
大小:由组件里面的内容决定
流布局主要适合一行组件的设置
3. 网格布局(grid)
按照行列的方式,在界面上划分空间,每个空间等大;
如果划分空间不够,优先保证行不变,增加行
作用:主要用来放置中间容器
4. **卡片布局(card) --中间面板
有效使用面板嵌套 1. 放置所有的GUI部件在一个JPanel中 2. JPanel默认是FlowLayout(流布局)
3.事件处理
事件-event
委托事件模型
1. 事件源对象
2. 监听器对象{1. 绑定事件源与监听器;2.监听器有职责范围;
3.一个事件源可以绑定多个不同范围的监听器;4.一个监听器也可以监听多个事件源;}
好处
1. 代码独立,各个类任务清晰
2. 使用灵活,既可以为不同的事件源书写一个监听器,也可以书写各自的
坏处
1. 类的数量增加了,维护量增加了
2. 如果要操作非事件源的容器和组件,必须传参。
让容器类充当监听器
好处
1. 操作本容器的子容器和组件,不需传参
坏处
类的任务不明确;2.无法为不同的事件源书写各自的监听方法
使用匿名内部类,在绑定的时候同时实现接口的重写
好处
1. 访问本容器的子容器和组件,不传参
2. 可以为每个事件源书写各自的监听器
3. 类的功能各自独立
坏处
1. 初学者代码比较难懂
2.
1.CardLayout特征: 1. 添加层的时候,第二参数是该层的别名,别名不能重复 2. 放置层顺序和add顺序有关,默认显示第一个