GUI是Graphical User
Interface,是写程序做界面的技术。利用java做窗口界面涉及到两个包,一个是java.awt,一个是javax.swing,其中awt是sun公司初期推出的,被称为重量级组件,swing是后来推出的,功能更强大,被称为轻量级组件。
这是【java基础入门 清华大学出版社】中第九章GUI编程的目录和笔记。我无意抄书,只写个人理解。想学深入的,买书。
这本书对每个知识点都有例程和编译好的class文件,需要自取:
链接:https://pan.baidu.com/s/1PsPdJDyCxpwh_1bMib5sGQ 提取码:v6dh
9.1 AWT概述
组件包括容器组件和其他组件。
容器:
frame 有标题栏的窗口
dialog 对话窗口
panel 存在于其他窗口中的矩形区域
其他:
Button 按钮
Label 标签
Checkbox 复选框
TextComponent 文本域
9.2 AWT事件处理
9.2.1 事件处理机制
为了响应事件(如单击鼠标,键盘输入),需要在代码中将写好的监听器注册到组件,当事件发生后被组件封装为一个事件对象传递给监听器,由监听器实现预定的功能。
9.2.2 事件适配器
监听器需要实现系统的监听器接口,为了省去实现方法的大量冗余代码,我们可以继承事件适配器,事件适配器实现了监听器接口,但方法中没写代码,继承以后重写方法再注册即可。
9.2.3 用匿名内部类实现事件处理
用匿名内部类可以在注册时就地new一个类,无需在类外定义一个类,减少冗余代码。
9.3 常用事件分类
包括:窗体事件、鼠标事件、动作事件、键盘事件。
9.3.1 窗体事件
//最小化窗口:
windowIconified...
windowDeactivated...
//取消最小化:
windowDeiconified...
windowActivated...
//关闭窗口:
windowClosing...
windowDeactivated...
windowClosed...
9.3.2 鼠标事件
mouseEntered—鼠标进入按钮区域事件
mousePressed-鼠标按下事件
mouseReleased-鼠标放开事件
mouseClicked-鼠标完成点击事件
mouseExited—鼠标移出按钮区域事件
9.3.3 键盘事件
按下与释放
9.3.4 动作事件
例如关闭,无论是键盘关闭还是鼠标关闭都是关闭动作。
9.4 布局管理器
9.4.1 FlowLayout
9.4.2 BorderLayout
9.4.3 GridLayout
9.4.4 GridBagLayout
9.4.5 CardLayout
9.4.6 不适用布局管理器
9.5 AWT绘图
9.6 Swing
9.6.1 JFrame
JFrame是主窗口,其他组件可以向里面添加,从而绘制出你喜欢的窗口。
JFrame的方法:
setBounds(x,y,width,height);
setSize(width,height);
setTitle("标题");
add(组件)
setVisiable(boolean);
setDefaultCloseOperation(JFrame.常量);
setLayout(null);//设置为null为自由布局,setBounds才能生效。
9.6.2 JDialog
9.6.3 中间容器
9.6.4 文本组件
9.6.5 按钮组件
JButton的方法:
setContentAreaFilled(boolean);//false为背景透明
setIcon(ImageIcon);//设置按钮为一个图片
setBorder(null);//null为无边框
addActionListener(new ...);//添加监听器
setBounds(x,y,width,height);//设置位置