了解一下::Module8:图形界面Module9:事件模型(在本部分最重要)Module10:AWTModule11:SwingModule12:Applet(这个技术基本已经被淘汰) 软件应用的三个发展阶段:单机应用网络应用(C/S结构)BS结构:B表示浏览器,S表示server端。即利用浏览器作为客户端,因此对于图形界面的要求已经不高,现在的发展趋势是不使用安装,即不用任何的本地应用,图形很快就会被服务器构件开发所取代。 经验之谈:Swing的开发工作会非常的累,而且这项技术正在走向没落。避免从事有这种特征的工作。AWT也即将被取代。Module8—Module11所使用的技术都将被JSF技术所取代。JSF是服务器端的Swing:目前技术已经成熟,但是开发环境(工具)还不成熟。Module12的Applet技术也将被WebStart所取代。Module9为重点,所谓事件模型是指观察者设计模式的JAVA应用。事件模型是重点。
Module8:图形界面(java.awt.*)Awt:抽象窗口工具箱,它由三部分组成:①组件:界面元素;②容器:装载组件的容器(例如窗体);③布局管理器:负责决定容器中组件的摆放位置。图形界面的应用分四步:① 选择一个容器:⑴window:带标题的容器(如Frame);⑵Panel:面板通过add()想容器中添加组件。Java的图形界面依然是跨平台的。但是在调用了一个窗体之后只生成一个窗体,没有事件的处理,关闭按钮并不工作。此时只能使用CTRL+C终止程序。②设置一个布局管理器:用setLayout();③向容器中添加组件;① 添加组件的事务处理。Panel也是一种容器:但是不可见的。在设置容易的时候不要忘记设置它们的可见性。Panel pan=new Panel;Fp.setLayout(null);表示不要布局管理器。
五种布局管理器:Flow Layout(流式布局):按照组件添加到容器中的顺序,顺序排放组件位置。默认为水平排列,如果越界那么会向下排列。排列的位置随着容器大小的改变而改变。Panel默认的布局管理器为Flow Layout。 Border Layout:会将容器非常五个区域:东西南北中。语句:Button b1=new Botton(“north”);//botton上的文字f.add(b1,”North”);//表示b1这个botton放在north位置注:一个区域只能放置一个组件,如果想在一个区域放置多个组件就需要使用Panel来装载。Frame和Dialog的默认布局管理器是Border Layout。 Grid Layout:将容器生成等长等大的条列格,每个块中放置一个组件。f.setLayout GridLayout(5,2,10,10)//表示条列格为5行2类,后面为格间距。 CardLayout:一个容器可以放置多个组件,但每次只有一个组件可见(组件重叠)。使用first(),last(),next()可以决定哪个组件可见。可以用于将一系列的面板有顺序地呈现给用户。 重点:GridBag Layout:在Grid中可指定一个组件占据多行多列,GridBag的设置非常的烦琐。
Module9:AWT:事件模型事件模型指的是对象之间进行通信的设计模式。对象1给对象2发送一个信息相当于对象1引用对象2的方法。模型即是一种设计模式(约定俗成)对象对为三种:①事件源:发出事件者;②事件对象:发出的事件本身;① 事件监听器:提供处理事件指定的方法。 Java AWT事件模型也称为授权事件模型,指事件可以和监听器之间事先建立一种关系:约定那些事件如何处理,由谁去进行处理。这种约定称为授权。一个事件源可以授权多个监听者(授权也称为监听者的注册);多个事件源也可以注册多个事件监听器。监听者对于事件源的发出的事件作出响应。 在java.util中有EventListener接口:所有事件监听者都要实现这个接口。java.util中有EventObject类:所有的事件都为其子类。 事件范例在\CoreJava\Girl.java文件中。(文件已加注释) 注意:接口因对不同的事件监听器对其处理可能不同,所以只能建立监听的功能,而无法实现处理。 下面程序建立监听功能://监听器接口要定义监听器所具备的功能,定义方法{ void WhatIdoWhenGirlHappy(EmotionEvent e);void WhatIdoWhenGirlSad(EmotionEvent e);}注意查看参考书:事件的设置模式,如何实现授权模型。 事件模式的实现步骤:开发事件对象(事件发送者)——接口——接口实现类——设置监听对象一定要理解透彻Gril.java程序。 重点:学会处理对一个事件源有多个事件的监听器(在发送消息时监听器收到消息的排名不分先后)。 事件监听的响应顺序是不分先后的,不是谁先注册谁就先响应。 事件监听由两个部分组成(接口和接口的实现类)。事件源 事件对象 事件监听 gril EmotinEvent EmotionListener(接口)、Boy(接口的实现类)鼠标事件:MouseEvent,接口:MouseListener。P235 ActionEvent。注意在写程序的时候:import java.awt.*;以及import java.awt.event.*注意两者的不同。 在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing()。为了配合后面的实现,我们必须将WindowsListener所有的方法都实现,除了Windowsclosing方法,其余的方法均为空实现。(练习:写一个带button窗体,点关闭按钮退出。)上面程序中实现了许多不必要的实现类,虽然是空实现。为了避免上面那些无用的实现,可以利用WindowEvent的一个WindowEvent类,还是利用windowsListener。还有WindowAdapter类,它已经实现了WindowsListener。它给出的全部都是空实现,那就可以只写想要实现的类,去覆盖其中的类,就不用写空实现。注意:监听过多,会抛tooManyListener例外。