NetBeans学习笔记
- 格式:pdf
- 大小:5.46 MB
- 文档页数:47
javaweb学习笔记(⼀)基本概念web开发web,⽹页的意思。
静态web:html,css,提供给所有⼈看的数不会发⽣变化动态web:所有⼈看到的数据始终会发⽣变化,不同事件不同地点看到的信息不同。
技术栈:Servlet/JSP,ASP,PHP在java中,动态web资源开发的技术统称为JavaWebWeb应⽤程序Web应⽤程序:可以提供浏览器访问的程序;所有能访问到的页⾯或者资源,都在世界上的某⼀个⾓落的计算机上。
URL这个统⼀的web资源会放在同⼀个⽂件夹下,web应⽤程序--->Tomcat:服务器⼀个web应⽤由多个部份组成(静态,动态)html、css、jsjsp、servletJava程序jar包配置⽂件web应⽤程序编写完毕后,若想提供给外界访问:需要⼀个服务器来统⼀管理静态Web*html、htm,这些都是⽹页的后缀,如果服务器上⼀直存在这些东西,我们就可以直接进⾏读取。
静态web的缺点web页⾯⽆法动态更新,所有的⽤户看到的都是⼀个页⾯轮播图,点击特效:伪状态JavaScript[实际开发中,它⽤的最多]VBScrippt它⽆法和数据库交互(数据⽆法持久化,⽤户⽆法交互)动态Web页⾯会动态展⽰:展⽰效果因⼈⽽异。
缺点假如服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布。
停机维护优点Web页⾯可以动态更新,所有⽤户看到的都不是⼀个页⾯。
它可以和数据库交互Web服务器讲解技术讲解ASP微软:国内最早流⾏的就是ASP;在HTML中嵌⼊了VB脚本,ASP+COM在ASP开发中,基本⼀个页⾯都有⼏千⾏的业务代码,页⾯极其混乱维护成本⾼!IIS<h1><h1><%System.out.println("hello")%></h1><h1></h1></h1>phpphp开发速度很快,功能很强⼤,跨平台,代码很简单()⽆法承载⼤访问量的情况JSP/servletB/S:浏览器客户端C/S:客户端和服务器sun公司主推的B/S框架基于Java语⾔的(所有的⼤公司和⼀些开源的组件,都是Java写的)可以承载三⾼问题带来的影响。
【狂神说Java】JavaWeb⼊门到实战1---笔记转⾃:⽂章⽬录1、基本概念1.1、前⾔1.2、web应⽤程序web应⽤程序:1.3、静态web1.4、动态web2、web服务器2.1、技术讲解2.2、web服务器3、Tomcat3.1安装tomcat tomcat3.2、Tomcat启动和配置3.3、配置3.4、发布⼀个web⽹站4、Http4.1、什么是HTTPHTTP4.2、两个时代4.3、Http请求1、请求⾏2、消息头4.4、Http响应1、响应体2、响应状态码5、Maven5.1 Maven项⽬架构管理⼯具5.2下载安装Maven5.3配置环境变量5.4阿⾥云镜像5.5本地仓库5.6 ~ 5.13笔记-下载地址6、Servlet6.1、Servlet简介6.2、HelloServlet6.2、HelloServlet6.3、Servlet原理6.4、Mapping问题6.5、ServletContext1、共享数据2、获取初始化参数3、请求转发6.6、HttpServletResponse1、简单分类2、下载⽂件3、验证码功能6.7、HttpServletRequest获取参数,请求转发7、Cookie、Session7.1、会话7.2、保存会话的两种技术7.3、Cookie7.4、Session(重点)8、JSP8.1、什么是JSP8.2、JSP原理8.3、JSP基础语法JSP表达式jsp脚本⽚段JSP声明8.4、JSP指令8.5、9⼤内置对象8.6、JSP标签、JSTL标签、EL表达式9、JavaBean10、MVC三层架构10.1、以前的架构10.2、MVC三层架构11、Filter (重点)12、监听器13、过滤器、监听器常见应⽤14、JDBC15、SMBMS(超市管理项⽬)1、基本概念1.1、前⾔web开发:web,⽹页的意思,·静态webhtml,sss提供给所有⼈看的数据始终不会发⽣变化!动态web淘宝,⼏乎是所有的⽹站;提供给所有⼈看的数据始终会发⽣变化,每个⼈在不同的时间,不同的地点看到的信息各不相同!技术栈:Servlet/ISP,ASP,PHP1.2、web应⽤程序web应⽤程序:可以提供浏览器访问的程序;a.html、b.html.….多个web资源,这些web资源可以被外界访问,对外界提供服务;你们能访问到的任何⼀个页⾯或者资源,都存在于这个世界的某⼀个⾓落的计算机上。
图书馆管理系统开发步骤图书馆管理系统开发步骤((三)这一部分,我们学习如何创建并实现登录窗口。
最后完成的登录窗口如下图所示:1、创建创建登录窗体类登录窗体类首先启动NetBeans IDE ,右键单击项目,在弹出的上下文菜单中,依次选择【新建】|【JFrame 窗体…】菜单项,打开新建窗体向导对话框。
如下图所示:在弹出的“新建JFrame 窗体”对话框中,设置新建登录窗体的名称为“LoginIFrame ”,取包名为“com.xuejava.iframe ”。
然后单击【完成】按钮。
如下图所示:此时会出现新建窗体的设计窗口,及相关属性和导航窗口。
如下图所示:2、设计登录窗体布局接下来,在放置组件之前,要先设计好登录窗体的布局。
在这里,我们将登录窗体的布局,设置为BorderLayout布局模式(边框式布局)。
具体操作如下图所示:在设计窗口,在上、中、下三个区域分别放入一个JLabel组件和两个JPanel面板组件。
如下图所示:因为最下方的面板中,我们只用来放置两个按钮:登录和重置按钮。
很明显,下方的面板有点快。
所以我们需要进一步调整面板的大小。
先选中最下方的面板,然后在右侧的属性面板中,打开一个名为“preferredSize”的属性,将其高度改为60。
如下图所示:单击【确定】按钮,再转到窗体“设计”界面,会发现最下方的面板高度明显减少。
如下图所示:3、添加组件3.1 选中最上方的jLabel组件,设置其背景为login.jpg图片。
如下图所示:单击【确定】按钮,此时界面如下图所示(可能图片宽度小于默认的窗体宽度,适当调整窗体宽度到与图片宽度相同):3.2 在中间的面板中,放置接收用户输入信息的组件。
如下图所示:3.3 在最下方的面板中,放置两个按钮组件:一个用户提交用户登录信息,一个用来重置用户输入。
如下图所示:4、添加按钮的事件响应代码为了让我们的程序具备更好的可读性,我们需要为控件设置符合Java规范的变量名,而不是使用IDE自动生成的默认变量名。
说明:在编程中我们会在某个类、方法或变量前面加上@x,来表明这个类、方法或变量具有x属性。
1.Servlet1).Servlet 是什么?Java Servlet 是运行在Web 服务器或应用服务器上的程序,它是作为来自Web 浏览器或其他HTTP 客户端的请求和HTTP 服务器上的数据库或应用程序之间的中间层。
2).Servlet 有以下几点优势(1).性能明显更好。
(2).Servlet 在Web 服务器的地址空间内执行。
这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
(3).Servlet 是独立于平台的,因为它们是用Java 编写的。
(4).服务器上的Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。
因此,Servlet 是可信的。
(5).Java 类库的全部功能对Servlet 来说都是可用的。
它可以通过sockets 和RMI 机制与applets、数据库或其他软件进行交互。
3).Servlet 架构过程为:(1) 客户端发送请求至服务器端;(2) 服务器将请求信息发送至Servlet;(3) Servlet 生成响应内容并将其传给服务器。
响应内容动态生成,通常取决于客户端的请求;(4) 服务器将响应返回给客户端。
4).servlet生命周期(1).客户端请求该Servlet;(2).加载Servlet 类到内存;(3).实例化并调用init()方法初始化该Servlet;(4).service()(根据请求方法不同调用doGet() 或者doPost(),此外还有doGet()、doPut()、doTrace()、doDelete()、doOptions());(5).destroy()。
5).看一下老师ppt和教程(这个很不错/holandstone/article/details/16844957)想学的更好就看servlet-api.chm2.web socket(1).web socket:是HTML5一种新的协议。
j a v a学习心得笔记 LEKIBM standardization office【IBM5AB- LEKIBMK08- LEKIBM2C】java学习心得笔记j2ee学习笔记注:框架可以用word菜单中的“视图/文档结构图” 看到j2ee模式value object(值对象) 用于把数据从某个对象/层传递到其他对象/层的任意java对象。
通常不包含任何业务方法。
也许设计有公共属性,或者提供可以获取属性值的get方法。
jsp1.jsp的基础知识_______ | directive (指令)| |-- scripting (脚本)jsp -------| |__ action (动作)||_____template data :除jsp语法外,jsp引擎不能解读的东西1)在jsp中使用的directive(指令)主要有三个:a) page指令b) include指令c) taglib指令在jsp的任何地方,以任何顺序,一个页面可以包含任意数量的page指令2)scripting(脚本)包括三种类型a) <%!declaraction %>;b) <% scriptlet %>;c) <%= expression %>;3)action(动作)标准的动作类型有:a) <jsp:usebean>;b) <jsp:setproperty>;d) <jsp:getproperty>;e) <jsp:param>;f) <jsp:include>;g) <jsp:forward>;h) <jsp:plugin>;1. 注释: <% -----jsp comment-------%>;<! -----html comment-------%>;2. <%@ page session = “true” import =”.*” %>;session可以不赋值,默认为true,如果session=”false”,则在jsp页面中,隐含的变量session就不能使用。
信息技术教师业务学习笔记信息技术教师业务学习笔记1.as基元数据类型boolean,int,number,string,uint其中int、number、uint是处理数字的。
int用来处理整数,number用来处理很长又有小数点的数字,uint处理很大的正整数。
2.复杂数据类型,往往由基元类型构成。
有:array、date、error、function、regexp、xml、xmllist。
3.everythingisanobject;4.变量声明的方法和其它语言不同。
使用var变量名:数据类型;不指定类型就是untyped。
5.as每行结尾不加;也不会报错。
6.基元数据类型采用的也是引用。
称为不变对象。
这样做的原因是比直接保存值节省内存。
效率更高。
继承object.在我看来已经是个对象了。
7.常量const变量:变量类型。
8.boolean默认是false。
9.int和uint是整形数值.number是处理浮点数。
int是有符号的32位整形数,范围-2147483648-2147483647(-2的31次方到2的32次方-1)第一位保存符号。
uint是32位无符号整型。
number是64位浮点值。
number和java的double相同10.object以键-值保存数组,forin,foreachin是为遍历object这种类型还创建的。
因为无法使用索引访问。
11.as不支持重载。
它使用…args来实现12:==和===区别是。
第一个会进去类型转换。
13.顶类有28个,10个异常类。
C#.NET转Java学习笔记⼤学研究了三年的.Net,由于偶然的机会,拿到IBM的Java web实习offer,所以决定转⾏搞Java(综合了校招情况、发展前景和其他各种因素)。
下⾯是我在学习Java web的⼀些学习笔记(可能会⽐较乱,希望能做个备忘,如果能对您有帮助那就更好了)Servlet相关--------------------------1.Servlet的⽣命周期:Servlet⽣命周期分为三个阶段: 1,初始化阶段:调⽤init()⽅法 2,响应客户请求阶段:调⽤service()⽅法 Service()⽅法内部对请求的类型(get/post)进⾏了判断,⾃动调⽤doPost/doGet 3,终⽌阶段:调⽤destroy()⽅法2.Servlet的单例多线程:单例:Servlet只在⽤户第⼀次请求时被实例化,并且是单例的,在服务器重启或关闭时才会被销毁。
多线程:当请求到达时,Servlet容器(Tomcat...)通过线程池中可⽤的线程给请求者并执⾏Service⽅法。
Java基础相关-----------------------1.多线程线程创建的两种⽅法:第⼀种,实现Runnable接⼝package test.Thread;import org.junit.Test;//This example shows the two method to create new thread.The java file "MyThread" shows the other method.public class NewThread{@Testpublic void Fun(){RunnableThread rt = new RunnableThread();Thread t1 = new Thread(rt,"First");Thread t2 = new Thread(rt,"Second");t1.start();t2.start();}}class RunnableThread implements Runnable{@Overridepublic void run() {// TODO Auto-generated method stubfor(int i=0;i<100;i++){System.out.println(Thread.currentThread().getName());}}}第⼆种,继承Thread类package test.Thread;public class MyThread extends Thread{//The constructor without parameterpublic MyThread(){}//The constructor with name parameterpublic MyThread(String name){super(name);}public void run(){for(int i=0;i<100;i++){System.out.println(this.getName());}}}线程的同步使⽤同步锁synchronized,参见卖票程序。
Java⽹络编程(Socket基础,多线程socket,socket中⽂乱码问题)学习笔记1.概念2.简单TCP通信代码,⽤两个java程序模拟客户端和服务器端。
客户端代码:TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据表⽰客户端的类:.Socket:此类实现客户端套接字(也可以就叫“套接字”)。
套接字是两台机器间通信的端点。
套接字:包含了IP地址和端⼝号的⽹络单位构造⽅法:Socket(String host, int port) 创建⼀个流套接字并将其连接到指定主机上的指定端⼝号。
参数:String host:服务器主机的名称/服务器的IP地址int port:服务器的端⼝号成员⽅法:OutputStream getOutputStream() 返回此套接字的输出流。
InputStream getInputStream() 返回此套接字的输⼊流。
void close() 关闭此套接字。
实现步骤:1.创建⼀个客户端对象Socket,构造⽅法绑定服务器的IP地址和端⼝号2.使⽤Socket对象中的⽅法getOutputStream()获取⽹络字节输出流OutputStream对象3.使⽤⽹络字节输出流OutputStream对象中的⽅法write,给服务器发送数据4.使⽤Socket对象中的⽅法getInputStream()获取⽹络字节输⼊流InputStream对象5.使⽤⽹络字节输⼊流InputStream对象中的⽅法read,读取服务器回写的数据6.释放资源(Socket)注意:1.客户端和服务器端进⾏交互,必须使⽤Socket中提供的⽹络流,不能使⽤⾃⼰创建的流对象2.当我们创建客户端对象Socket的时候,就会去请求服务器和服务器经过3次握⼿建⽴连接通路这时如果服务器没有启动,那么就会抛出异常ConnectException: Connection refused: connect如果服务器已经启动,那么就可以进⾏交互了import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .Socket;import java.util.Scanner;public class TCPClient {public static void main(String[] args) throws IOException {Scanner cin = new Scanner(System.in);Socket socket = new Socket("127.0.0.1",8888);InputStream is = socket.getInputStream();while(true){//给服务器端发数据System.out.println("请输⼊你要向服务器发送的数据:");String sendMessage = cin.nextLine();OutputStream os = socket.getOutputStream();os.write(sendMessage.getBytes());//接收服务器端发过来的数据byte[] getMessage = new byte[1024];int len = is.read(getMessage);String message = new String(getMessage,0,len);System.out.println("收到服务器端发来的数据为: "+message);}}}服务器端代码:TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据表⽰服务器的类:.ServerSocket:此类实现服务器套接字。
黑马程序员:前端阶段笔记Canvas第二天text-overflow属性作用:设定内容溢出状态下的文本处理方式。
取值:clip:默认值当对象内文本溢出时不显示省略标记(...),而是将溢出的部分裁切掉。
ellipsis:当对象内文本溢出时显示省略标记(...)。
注意:该属性需要和over-flow:hidden属性(超出处理)还有white-space:nowrap(禁止换行)配合使用,否则无法看到效果text-align属性作用:设定文本对齐方式取值:left :默认值内容左对齐。
center:内容居中对齐。
right:内容右对齐。
justify:内容两端对齐。
写本文档时仅Firefox能看到正确效果start:内容对齐开始边界。
(CSS3)end:内容对齐结束边界。
(CSS3)text-transform属性作用:设定文本的大小写等形式的转换取值:none:默认值无转换capitalize:将每个单词的第一个字母转换成大写uppercase:转换成大写lowercase:转换成小写full-width:将左右字符设为全角形式(CSS3)不支持full-size-kana:将所有小假名字符转换为普通假名(CSS3)不支持例如:土耳其语。
text-decoration属性作用:设定文本修饰线。
取值:[ text-decoration-line ]:不支持指定文本装饰的种类。
相当于CSS1时的text-decoration属性[ text-decoration-style ]:不支持指定文本装饰的样式。
[ text-decoration-color]:不支持指定文本装饰的颜色。
blink:指定文字的装饰是闪烁。
仅opera和firefox例如:text-decoration : overline CSS1实例text-decoration : #F00 double overline CSS3实例备注:目前主要浏览器都没有实现上述属性,但是依然可以使用CSS1的实例方式text-decoration-line属性, 备注:目前大部分浏览器未实现该属性。
最全⾯的Spring学习笔记致⼒于提供⼀种⽅法管理你的业务对象。
在⼤量Java EE的应⽤中,随处可见Spring。
今天我将简单的介绍⼀下Spring这个框架。
本⽂适合读者:想学Spring的Java开发者刚⽤Spring不久的⼈Why为什么要使⽤Spring?Spring主要两个有功能为我们的业务对象管理提供了⾮常便捷的⽅法:DI(Dependency Injection,依赖注⼊)AOP(Aspect Oriented Programming,⾯向切⾯编程)Java Bean每⼀个类实现了Bean的规范才可以由Spring来接管,那么Bean的规范是什么呢?必须是个公有(public)类有⽆参构造函数⽤公共⽅法暴露内部成员属性(getter,setter)实现这样规范的类,被称为Java Bean。
即是⼀种可重⽤的组件。
DI-依赖注⼊简单来说,⼀个系统中可能会有成千上万个对象。
如果要⼿⼯维护它们之间的关系,这是不可想象的。
我们可以在Spring的XML⽂件描述它们之间的关系,由Spring⾃动来注⼊它们——⽐如A类的实例需要B类的实例作为参数set进去。
AOP-⾯向切⾯编程就以⽇志系统为例。
在执⾏某个操作前后都需要输出⽇志,如果⼿⼯加代码,那简直太可怕了。
⽽且等代码庞⼤起来,也是⾮常难维护的⼀种情况。
这⾥就需要⾯向切⾯来编程How关于BeanBean的⽣命周期如你所见,在bean准备就绪之前,bean⼯⼚执⾏了若⼲启动步骤。
我们对图进⾏详细描述:1. Spring对bean进⾏实例化;2. Spring将值和bean的引⽤注⼊到bean对应的属性中;3. 如果bean实现了BeanNameAware接⼝,Spring将bean的ID传递给setBean-Name()⽅法;4. 如果bean实现了BeanFactoryAware接⼝,Spring将调⽤setBeanFactory()⽅法,将BeanFactory容器实例传⼊;5. 如果bean实现了ApplicationContextAware接⼝,Spring将调⽤setApplicationContext()⽅法,将bean所在的应⽤上下⽂的引⽤传⼊进来;6. 如果bean实现了BeanPostProcessor接⼝,Spring将调⽤它们的post-ProcessBeforeInitialization()⽅法;7. 如果bean实现了InitializingBean接⼝,Spring将调⽤它们的after-PropertiesSet()⽅法。
NetBeans学习笔记
第一章NetBeans集成开发环境创建第一个NetBeans项目打开NetBeans,新建项目——〉应用程序——〉项目名称:firstexample,设定存储位置——〉在main函数下输入代码:System.out.println(“欢迎使用NetBeans5.0,这是第一个例子。”);——〉保存——〉运行。源代码编辑器尽管可视化开发大大缩短了开发人员的时间,但是代码的编写还是不可被取代的,代码的编写仍然是整个程序的核心部分。一个程序的好坏,很大程度上取决于代码的编写。NetBeans提供的代码编辑器十分好用,对于代码的整体性,自动查找错误和修复上面,有了很好的帮助。
第二章Swing概述Swing是SUNMicroSystem建立的新一代GUI工具包,允许用户进行企业级的开发。Swing的开发需要许多的包,这里不再一一介绍,当开发的时候,NetBeans会提醒你添加需要的包,通过修复添加就可以。下面,我们来进行一个简单得Swing程序。再使用了JDK以后,我们对java语言已经有了一定的认识和了解。虽然NetBeans可以使用控件来进行开发,但是必要的代码开发,还是不可少的。在没有习惯以及熟练掌握控件的托拽开发以前,让我们先利用代码来编写一个小的程序。步骤如下:建立一个项目,创建一个扩展Jframe的类FirstSwing用来存放各个组件。在main()方法中新建一个FirstSwing的实例mySwing。在FirstSwing类中声明各个组件:privateJLabeljLabelUserName;privateJLabeljLabelPassword;privateJTextFieldjTextFieldUserName;privateJPasswordFieldjpfPassword;privateJButtonjButtonEnter;privateJButtonjButtonCancel;将FirstSwing的布局管理器设置为null:this.setLayout(null);//在FirstSwing方法中定义。为声明的每个组件创建实例对象:jLabelUserName=newJLabel("用户名:");jLabelPassword=newJLabel("密码:");jTextFieldUserName=newJTextField();jpfPassword=newJPasswordField();jButtonEnter=newJButton("确定");jButtonCancel=newJButton("取消");设置控件的位置,并且添加到容器中:jLabelUserName.setBounds(10,20,80,20);jLabelPassword.setBounds(10,50,80,20);jTextFieldUserName.setBounds(100,20,150,20);jpfPassword.setBounds(100,50,150,20);jButtonEnter.setBounds(80,90,60,20);jButtonCancel.setBounds(160,90,60,20);this.add(jLabelUserName);this.add(jLabelPassword);this.add(jTextFieldUserName);this.add(jpfPassword);this.add(jButtonEnter);this.add(jButtonCancel);设置FirstSwing的大小、标题和可见性:this.setBounds(330,250,300,150);this.setTitle("这是第一个Swing程序!");this.setVisible(true);这样,整个程序就完成了,下面给出完整的代码:importjava.awt.*;importjavax.swing.*;classFirstSwingextendsJFrame{privateJLabeljLabelUserName;privateJLabeljLabelPassword;privateJTextFieldjTextFieldUserName;privateJPasswordFieldjpfPassword;privateJButtonjButtonEnter;privateJButtonjButtonCancel;publicFirstSwing(){this.setLayout(null);jLabelUserName=newJLabel("用户名:");jLabelPassword=newJLabel("密码:");jTextFieldUserName=newJTextField();jpfPassword=newJPasswordField();jButtonEnter=newJButton("确定");jButtonCancel=newJButton("取消");jLabelUserName.setBounds(10,20,80,20);jLabelPassword.setBounds(10,50,80,20);jTextFieldUserName.setBounds(100,20,150,20);jpfPassword.setBounds(100,50,150,20);jButtonEnter.setBounds(80,90,60,20);jButtonCancel.setBounds(160,90,60,20);this.add(jLabelUserName);this.add(jLabelPassword);this.add(jTextFieldUserName);this.add(jpfPassword);this.add(jButtonEnter);this.add(jButtonCancel);this.setBounds(330,250,300,150);this.setTitle("这是第一个Swing程序!");this.setVisible(true);}}publicclassMain{publicstaticvoidmain(String[]args){FirstSwingmySwing=newFirstSwing();}}开发后的图像如下:
通过上面的例子,我们已经能够利用NetBeans编写一个简单的,具有GUI界面的程序了,但是,纯粹的利用代码来编写,十分费力,所以,我们接下来讲的就是如何利用NetBeans来开发一个Swing应用程序。步骤如下:创建项目——〉将工程的名字修改为addstudentinfo,并且设置包的位置,一般设置位org.netbeans,选中左方窗口的源代码包下的netbeans节点,鼠标右击,新建JFrame,并且修改名字为AddStudentFrame,然后确定。打开GUI设计器。向窗体上添加一个Jlabel,鼠标右击——〉改变变量名称:jLabelStudentName,属性:text:姓名。然后依次再添加4个Jlabel,名称分别为jLabelStudentID(学号:),jLabelGender(性别:),jLabelGrade(班级:),jLabelPhoneNum(联系电话:)。添加四个JtextField,分别为jTextFieldStudentID,jTextFieldGrade,jTextFieldPhoneNum,还有jTextFieldName。全部设置为空。两个JradioButton,JradioButtonMale(男),JRadioButtonFemale(女);两个JButton,JbuttonEnter(确定),JbuttonCancel(取消);运行后的图像如下:第三章Swing/JFC的事件模型基础任何支持GUI的操作环境都会不断地监听事件。当按下键盘或者单击鼠标的时候,便会触发一个相应的事件,操作环境把这些事件报告给正在运行的程序,接着程序决定如何响应这些事件。在java中,开发人员能够控制各种事件,可以把迅速响应事件的对象指派成一个事件监听器。下面介绍一下常用事件对象及其作用。AWTEvent:所有AWT事件的根事件类。ConnectionEvent:封装与连接有关信息的事件。ChangeEvent:封装状态改变信息的事件。ListSelectionEvent:表示当前选择中更改的特征事件。CaretEvent:封装文本区中的光标改变信息的事件。ListDataEvent:定义一个封装列表更改的事件。HyperlinkEvent:封装与超文本连接有关的事件。TableColumnModelEvent:某一个表的列模型已发生改变。TableModelEvent:通知侦听器某一个表模型已发生改变。TreeExpansionEvent:用于表示树中的单个路径的事件。TreeModelEvent:封装描述树模型更改的信息。TreeSelectionEvent:描述当前选择的更改事件。上面所述的,只是一些常用的事件对象和作用,当遇到那些不常用的时,应该第一时间查阅JDK。在了解了事件处理的工作机制以后,现在深入讨论java中的事件处理。Java中的事件处理是面向对象的,所有事件都是从java.util包中的EventObject类扩展来的。EventObject有一个子类AWTEvent,它是所有AWT事件的父类。对于java开发人员来说,有些AWT事件在实际中应用不多。我们所讲述的,只是在实际中会被传到舰艇气得AWT事件类型。常用的事件类型和接口