swing框架

来源:互联网 发布:网络彩票代理违法吗 编辑:程序博客网 时间:2024/06/05 18:09

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文件中。(文件已加注释)      

 

注意:接口因对不同的事件监听器对其处理可能不同,所以只能建立监听的功能,而无法实现处理。

 

下面程序建立监听功能:

//监听器接口要定义监听器所具备的功能,定义方法

{

  voidWhatIdoWhenGirlHappy(EmotionEvent e);

voidWhatIdoWhenGirlSad(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例外。

 

Canvas组件:画布,可以实现动画操作。

TextArea:文本域。

在单行文本域中回车会激发ActionEvent。

用CheckBoxGroup实现单选框功能。

Java中,单选框和复选框都是使用CheckBox实现。

菜单:new MenuBar(),MenuBar表示菜单条。

菜单中的每一项为MenuItem,一般级联菜单不应该超过三级。

练习:

设计一个计算器:注意设置一个boolean值(append)来判断输入数字是位于第一个数的后面还是属于输入的第二个数。

设置一个变量来存放“+”,点完运算符后,将append设置为false。

String number1

Char  operator 存放运算符。

 

AWT是Java最早出现的图形界面,但很快就被Swing所取代。

Swing才是一种真正的图形开发。

AWT在不同平台所出现的界面可能有所不同:因为每个OS都有自己的UI组件库,java调用不同系统的UI。

注意AWT为重量级组件,相当消耗资源,且不同系统的组件可能不同。因为这个问题使得AWT开发的软件难以作到跨平台。
更为要命的是:不同OS的组件库都存在BUG。必须多种平台进行测试,并且AWT的组件库并不丰富。

为解决以上问题,SUN和IBM以及NETSCAPE联合开发出JAVA基础类包Swing:注意JAVA的基础类以Swing为核心。

注意引用:javax.swing.*;javax表示JAVA的扩展。

我们在学习JDBC的时候会过度到J2EE。

 

在Swing的组件中,基本上都是在AWT组件的名称前面加“J”。

一般情况下,除了Choise等组件:

importjavax.swing.*;好要加上:import java.awt.*以及import java.awt.event.*。

Swing与AWT的最大区别是Swing为JAVA自身的组件。已经不是对等实体,与底层的OS无关。

(JBUILDER就是使用Swing写的)

 

Swing与AWT在事件模型处理上是一致的。

Jframe实际上是一堆窗体的叠加。

Swing比AWT更加复杂且灵活。

在JDK1.4中,给JFRAME添加Button不可用jf.add(b)。而是使用jf.getContentPane().add(b)。

content是先申请面板。不过在JDK1.5中可以使用add.。

Jpanel支持双缓冲技术。

在Jbutton中可以添加图标。

JscrollPane可以管理比屏幕还要大的组件。

TextArea只有装入JscrollPane中才能实现滚动条。

JeditorPane用于显示浏览器。

注意:Tabbed Panel与Border的比较。

进度条:ProgressBar。

JcomboBox:下拉菜单:在AWT中同类组件是choice。

JlistPanel:选择列表

BorderPanel:设置边框

JsplitPanel:可将容器分为两个部分,其中一个部分有Jtree。

TextBox:也是一种新的容器,可以设置组件的间距。

TextFileChoose:文件选择器。

ColorChoose:颜色选择器

Module 12  Applet

Applet为Panel的子类

Applet是java的自动执行方式(这是它的优势,主要用于HTML)。

工作四种语法:init(),start(),stop(),destory()。

Swing中有一个Japplet,如使用Swing组件。

Applet消亡的原因:

①java为安全起见对Applet有所限制:Applet不允许访问本地文件信息、敏感信息,不能执行本地指令(比如FORMAT),不能访问初原服务器之外的其他服务器。

② IE不支持新版本的Applet。

Applet的优势:

网络传输,自动下载。

Application的优势:没有执行限制。

WebStart:可在网络传输,并且在本地无限制。因此前景光明。

0 0
原创粉丝点击