------- android培训、java培训、期待与您交流! ----------
一、GUI
1.1 GUI的概念
GUI即图形用户接口,用图形的方式,来显示计算机操作的界面,这样更方便更直观。除去图形用户接口外,系统还有CLI命令行用户接口。
在Java中,为GUI提供的对象都存在Awt包和Swing包中。
1.2 Awt和Swing
Awt名为抽象窗口工具包,需要调用本地系统方法实现功能,属重量级控件。
Swing是在AWT基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全有Java实现,增强了移植性,属轻量级控件。
1.3 继承关系图
1.4 布局管理器
容器中组件的排放方式,就是布局,常见的布局管理器有:
FlowLayout(流式布局管理器)
排布方式:从左到右的顺序,Panel默认的布局管理器
BorderLayout(边界布局管理器)
排布方式:东南西北中,Frame默认的布局管理器
GridLayout(网络布局管理器)
排布方式:规则的矩阵
GardLayout(卡片布局管理器)
排布方式:选项卡
GridBagLayout(网格包布局管理器)
排布方式:非规则的矩阵。
创建图形化界面的步骤:
1、 创建frame对象
2、 对窗体进行基本设置,如大小,位置,布局
3、 定义组件
4、 将组件通过窗体的add方法添加到窗体中
5、 让窗体显示,通过setVisible(true)
1.5 事件监听机制
事件监听机制的特点:
1、 事件源:就是AWT包或者Swing包中的那些图形界面组件。
2、 事件:每一个事件源都有自己特有的对应事件和共性事件。
3、 监听器:将可以触发某一个事件的动作都已经封装到了监听器中
以上三种,在java中都已经定义好了,直接获取其对象就可以了,我们要做的事情,就是对产生的动作进行处理。
4、 事件处理:就是需要实现自己所需要的功能
如下,就是一个记事本小程序对GUI的运用:
该程序的运行结果如下,这里我打开了一个本地的java文本
二、网络编程
2.1 网络模型
OSI参考模型:
OSI参考模型分为七层,从上到下分别是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
TCP/IP参考模型
TCP/IP参考模型分为四层,应用层,传输层,网际层,主机至网络层。
2.2 网络通讯要素
IP地址 :网络中设备的标识,不易记忆,可用主机名,本地回环地址为127.0.0.1,主机名:localhost
端口号:用于标识进程的逻辑地址,不同的进程的标识不同,有效端口号位0-65535,其中0-1204是系统保留的端口号
传输协议:常见的协议有TCP和UDP
2.3 TCP和UDP
UDP的特点:
1、 将数据及源和目的封装成数据包,不需要建立连接
2、 每个数据报的大小限制在64K内
3、 因无连接,是不可靠协议
4、 不需要建立连接,速度快
TCP的特点
1、 建立连接,形成传输数据的通道
2、 在连接中进行大量数据传输
3、 通过三次握手完成连接,是可靠协议
4、 必须建立连接,效率稍低。
2.4 UDP的传输
传输过程:
1、 建立UDPsocket服务
2、 提供数据,并将数据封装到数据包中
3、 通过socket服务的发送数据功能,将数据包发送出去
4、 关闭资源
接受过程:
1、 定义UDPsocket服务
2、 定义一个数据包,因为要存储接受到的字节数据,因为数据包对象中有更多功能,可以提供字节数据中的不同信息。
3、 通过socket服务的receiive方法将接受到的数据存入已定义好的数据包中
4、 通过数据包的特殊功能,将不同的数据取出,打印在控制台上
5、 关闭资源
2.5 TCP的传输
TCP分为客户端和服务端
客户端对应的是socket,该对象在建立时,就可以去连接主机,因为TCP是面向对象连接的,所以在建立socket服务时,就要有服务端在,并且连接成功,形成通路后,在通路进行数据传输,服务端对应的是ServerScoket。
服务端的步骤:
1、 建立服务端的socket服务,并监听一个端口,
2、 获取连接过来的服务端对象
3、 哭护短如果发送过来数据,那么服务端要使用对应客户端的对象,并获取到该客户端对象的读取流来发送数据
4、 关闭服务端(可选)。
2.6 socker
socket就是为网络服务提供的一种机制,通信两端都有socket,网络通讯其实就是Socket间的通信,数据在两个Socket间通过IO传输。如下,就是一个UDP传输数据的简单例子:
2.7 URL
URL又名统一资源定位符,它没有构造函数,通过URL的openConnection方法,可以获取对应的对象。它与URL的地址相连接,返回URLConnection对象是一个抽象类,它封装了socket,所以不需要建立socket对象,通过他就可以使用socket 的方法。而且它不需要关闭。
如下是一个聊天程序的代码实现: