您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 清华面向对象程序设计:第12章
第12章JavaBean编程技术12.1JavaBean概述JavaBeanAPI为应用Java程序设计语言编写软件组件提供了可靠保证,这些组件可以通过可视化的应用程序构造工具方便地嵌入到Applet应用程序、Application应用程序或复合组件中,JavaBean组件又被简称为Bean。JavaBean是JDK1.1的核心概念,任何支持Java1.1的浏览器或工具都支持JavaBean。JavaBean应该具有的特征1.自检特征2.属性特征3.定制特征4.事件特征5.持久性特征6.功能分解特征自检特征JavaBean可以通过下面两种途径进行自我检测:在对JavaBean功能进行命名时,严格地遵循命名规范,又称为设计模式,通过名称就可以知道它的基本功能。利用可视化的方式将每个JavaBean属性、方法和事件的相关信息展示给用户,可以直接地观察到它们的状态。属性特征属性是JavaBean外观及行为特征的描述用户可以在设计阶段对它进行定制。对于每个JavaBean,可以通过软件构造工具进行检测并以可视化的方式提供给用户。定制特征在设计阶段可以利用属性编辑器或JavaBean定制器对其进行重新定制。事件特征JavaBean利用事件实现与其他JavaBean的沟通。希望接收事件的JavaBean要对它所关注的事件引发者进行注册。软件构造工具能够检查每个JavaBean,以便判定它能够引发哪些事件或能够处理哪些事件。持久性特征持久性使得JavaBean的状态可以被永久性地保存起来修改了某个JavaBean的属性之后,一定要将其永久性地保存,以便日后使用时JavaBean将处于最新版本的状态。功能分解特征JavaBean的方法与Java的成员方法一样,不仅可以由其他的JavaBean调用,也可以由本地环境调用。在默认情况下,JavaBean的成员方法都是public方法。每个JavaBean都应该有独特的功能,这样才符合组件技术的设计宗旨。12.2JavaBean结构JavaBean类似于Java程序,是一个非常简单且严格遵守某种规则的类,每个JavaBean都有不同的功能。JavaBean属性、事件和方法是构成JavaBean的三大内部构件。例:设置组件大小及背景颜色的JavaBean一个最简单的JavaBeanimportjava.awt.*;importjava.io.Serializable;publicclassSimpleBeanextendsCanvasimplementsSerializable{publicSimpleBean(){setSize(60,40);setBackground(Color.red);}}1.JavaBean属性描述了组件的静态特征,包括外观形状、颜色等通过专用的方法对这些属性进行访问按其作用分为4个类别:Simple(简单)Index(索引)Bound(关联)Constrained(约束)。Simple(简单)属性每个Simple型属性对应一个成员变量及一对用于获取或设置(get/set)的public成员方法,基本格式为:publicPropertyTypegetpropertyNaem()publicvoidsetpropertyNaem()例:包含一个Simple型属性Color的JavaBean组件importjava.awt.*;importjava.io.Serializable;publicclassSimpleBeanextendsCanvasimplementsSerializable{privateColorcolor=Color.green;//Simple型属性publicColorgetColor(){//获取colorreturncolor;}publicvoidsetColor(ColornewColor)//设置color{color=newColor;repaint();}publicvoidpaint(Graphicsg){//设置颜色并绘制一个用color颜色填充的矩形g.setColor(color);g.fillRect(20,5,20,30);}publicSimpleBean()//设置组件的大小及背景颜色{setSize(60,40);setBackground(Color.red);}}Index(索引)属性由多个属性构成的成员变量数组定义时需要有一对方括号[],访问其中的每个属性时需要给出下标索引。获取或设置这类属性有两种基本方式–获取或设置整个数组的内容;–获取或设置某个特定元素的内容.定义Index属性的基本格式(1)获取或设置整个数组的get/set定义格式:PublicPropertyType[]getPropertyName()PublicvoidsetPropertyName(PropertyType[]value)(2)获取或设置数组中某个特定元素的get/set定义格式:publicPropertyTypegetPropertyName(intindex)publicvoidsetPropertyName(intindex,PropertyTypevalue)Bound(关联)属性表示组件之间的关联特性。当JavaBean组件的属性发生改变,要将这种变化通知给对此感兴趣的监听器。一个包含Bound属性的JavaBean组件需要维护一个属性变化监听器列表。将一个希望得到这个通告的组件或应用程序添加到监听器列表的过程被称为注册。执行过程当JavaBean组件的属性值发生了变化时将激活一个PropertyChange事件随即系统自动地创建一个PropertyChangeEvent类对象。封装了属性名、属性的旧值,属性的新值。将事件的发生通告给监听器列表中的每个监听者各个监听者将自动地调用PropertyChange()成员方法做出响应Constrained(约束)对JavaBean组件属性的改变加以限制。当试图更改组件的属性时,JavaBean产生一个PropertyChange事件,描述了请求更改属性的内容,随后将其通告给所有注册的对象,如果某个对象表示反对,就不能实现对该属性的更改操作。2.JavaBean方法JavaBean组件的属性描述了组件的静态特征JavaBean组件的方法表述组件的动态行为在这些方法中,有用来实现获取属性值和设置属性值的;有用来响应事件的;还有一些供组件内部调用的。供外部调用的方法应该具有public访问属性,它是组件之间或组件与应用程序之间相互交流信息的接口。这些方法可以由其他的组件或应用程序直接地调用,也可以由事件激活。3.JavaBean事件事件处理是JavaBean组件体系结构的核心当事件发生时,将产生一个事件对象,并将这个对象作为参数传递给事件监听器,事件监听器再将它发送给事件处理器进行处理。事件源事件处理器事件监听器事件对象事件对象事件源是指产生事件的JavaBean组件事件监听器是一个实现了相应的事件监听接口且被注册到接收事件的JavaBean组件的监听器类对象事件处理器是监听器中用来处理具体事件的代码块,在Java程序中用监听器对象的成员方法实现。12.3编写JavaBeanJavaBean组件就是一个Java类,利用JavaBean构造器可以很方便地显示编写一个JavaBean组件的任务JavaBean构造器:Sun公司提供的免费Bean开发工具包(BDK)、Borland公司的JBuider和Symantec公司的VisualCafe等。
本文标题:清华面向对象程序设计:第12章
链接地址:https://www.777doc.com/doc-3175249 .html