《Java语言基础教案06GUI&网编程&正则表达式》由会员分享,可在线阅读,更多相关《Java语言基础教案06GUI&网编程&正则表达式(27页珍藏版)》请在金锄头文库上搜索。
1、1 GUI1.1 GUI是什么 Graphical User Interface(图形用户接口) java提供了一个 java.awt 包,用于创建用户界面和绘制图形图像的所有类。 做j2ee方向的一般很少会用这个东西1.2 GUI的简单使用 知识点:n 窗口,尺寸,位置、关闭、图标、动作监听、鼠标监听、键盘监听 代码public class Demo01 public static void main(String args) /创建一个窗口并显示/1.创建窗口对象Frame window = new Frame(我是一个窗口);/2.设置窗口的大小window.setSize(400, 4
2、00);/3.设置位置window.setLocation(200, 200);/4.设置程序图标window.setIconImage(Toolkit.getDefaultToolkit().createImage(qq.png);/5.监听窗口x 按钮window.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) /释放资源/./退出程序System.exit(0););/6.添加按钮/6.1创建按钮Button btn1 = new Button(close);/6
3、.2添加到窗口window.add(btn1);/6.3再添加按钮Button btn2 = new Button(mouse);window.add(btn2);/7.设置组件布局方式流布局window.setLayout(new FlowLayout();/8.监听按钮的点击btn1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) System.out.println(点击.);/关闭程序System.exit(0););/9.监听鼠标的事件btn2.addM
4、ouseListener(new MouseAdapter() Overridepublic void mousePressed(MouseEvent e) / TODO Auto-generated method stubSystem.out.println(鼠标按下.);Overridepublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stubSystem.out.println(鼠标松开.););/10.键盘监听Button btn3 = new Button(keyboard);window.add
5、(btn3);btn3.addKeyListener(new KeyAdapter() Overridepublic void keyReleased(KeyEvent e) /键盘对应字符/e.getKeyCode():字符编码表System.out.println(e.getKeyCode() + : + e.getKeyChar(););/显示窗口window.setVisible(true);1.3事件处理要素 事件处理的三要素:事件、事件源、监听器 事件: 用户的一个操作,如:点击 事件源: 被操作的组件,如:按钮 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法
6、,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法1.4 适配器模式什么是适配器 在使用监听器的时候, 需要定义一个类事件监听器接口. 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐. 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.适配器原理 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的. 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了代码案例public
7、 class Demo01 public static void main(String args) /适配器设计模式(掌握)/1.创建按钮对象Button btn = new Button();btn.addMouseListner(new MouseAdapter() Overridepublic void onceClick() System.out.println(单击。););interface MouseListnerpublic void onceClick();/单击public void doubleClick();/双击public void rightClick();/右
8、击abstract class MouseAdapter implements MouseListnerOverridepublic void onceClick() Overridepublic void doubleClick() Overridepublic void rightClick() class Buttonpublic void addMouseListner(MouseListner m)2 网络编程2.1 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传
9、递的计算机系统。2.2 网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。2.3 网络编程三要素IP 每个设备在网络中的唯一标识 每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。 IP地址的分类:IPv4 & IPv6 IPv4 IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽,IP格式: 192.168.1.168。n 测试网络连接 ping 192.168.1.68n 本地回路地址:ping 127.0.0.1(测试网卡有没插好)n 广播地址:255.255.255.255 IP地址也分公
10、网地址(万维网使用)和私有地址(局域网使用),192.168.开头的就是私有址址 IPv6:8组,每组4个16进制数。1a2b:0000:aaaa:0000:0000:0000:aabb:1f2f(IPv6暂先不用掌握)Port端口 端口号是每个程序在设备上的唯一标识 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序,端口号范围从0-65535 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本都被系统程序占用了。 常用端口,面试会问n mysql: 3306n oracle: 1521n web: 80n tomcat:
11、8080协议协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络传输方式协议有TCP&UDPTCP(传输控制协议)面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据UDP(数据报传输协议)面向无连接,数据不安全,速度快。不区分客户端与服务端。2.4 Socket概述 Socket翻译过来就是套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 通信的两端都有Socket,网络通信其实就是Socket间的通信。 数据在两个Socket间通过IO流传输。Socket就是
12、用来建立通信管道 Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。2.5 TCP通信原理图解2.6 UDP通信原理图解2.7 案例:UDP数据传输实现步骤:发送Send创建DatagramSocket, 随机端口号创建DatagramPacket, 指定数据, 长度, 地址, 端口使用DatagramSocket发送DatagramPacket关闭DatagramSocket接收Receive创建DatagramSocket, 指定端口号创建DatagramPacket, 指定数组, 长度使用DatagramSocket接收DatagramPa
13、cket关闭DatagramSocket从DatagramPacket中获取数据案例:实现UDP的发送和接收public static void main(String args) throws Exception /1.发送Send/创建DatagramSocket, 随机端口号DatagramSocket sender = new DatagramSocket();/创建DatagramPacket【数据包】, 指定数据, 长度, 地址, 端口String s = 你好吗?最近很想你;byte bs = s.getBytes(UTF-8);DatagramPacket packet = new DatagramPacket(bs, bs.length, Inet4Address.getByName(192.168.1.125), 5288);/使用DatagramSocket发送DatagramPacketsender.send(packet);/关闭DatagramSocketssender.clo