JavaBean是用java语言编写的可重用的软件组件。编写JavaBean组件的方法同编写其他Java类一样。你也可以利用已有的组件, applet小程序或者Java类,并把它们转变为JavaBean。 该教程有两个目的,它们是:
要学习该教程,你必须安装如下软件: 按照这些程序所附带的安装指南进行安装。 该教程并不能替代JavaBean标准,但是它提供了详细的例子和指导步骤,用于帮助你构建和使用JavaBean。在使用该教程的同时,你可以阅读有关标准的相关章节。你也许可以发现,学习由BDK所提供的这些例子的源代码,会对你很有帮助。 定义:Bean是什么? 如果你使用过诸如Delphi 或者Visual Basic这样的软件开发工具的话,那么你就已经有了关于bean的概念。JavaBean是用Java语言编写的可重用软件组件。它可以通过构建工具用可视化的方式创建。一个JavaBean通常简称为Bean。 软件组件是个自含的,可重用的软件单元。通过使用可视化的应用程序构建工具,软件组件可以嵌入到applets小程序,应用程序, servlets和复合组件中。你可以在一个图形化的用户接口下进行这种组合,而且立即就可看到组合的结果。 可重用的软件组件在软件开发领域中,可重用软件组件借鉴了零组件互换的概念。在很久以前,其它工业领域就已从可重用组件的思想中获益。例如,下图中的一个计算器组件就是由16个按钮组件,一个文本域组件,以及带有按钮和文本显示区的面板。 可重用的软件组件可以是诸如按钮,文本域,列表框,滚动条和对话框等这些简单的组件。
传统上,上述组件是由第三方软件公司开发销售的,现在这些公司开发销售的则是更加复杂的软件组件,诸如日历和电子表格。
如果你使用过诸如Visual Age,Delphi, Visual Basic,Mojo或者PowerBuilder等可视化组件装配工具,你就会熟悉软件组件的概念。Visual Basic Extensions (VBXs) 是首次得到广泛使用的软件组件,之后使用的是同具体编程语言无关的OLE Custom Controls (OCXs)。UNIX程序员则对widgets和toolkits更加熟悉一些。 可重用的组件可以在widgets 中加入标准化的接口和对象自检机制,可以让构造工具查询软件组件的属性和行为。 另外要知道,在运行的应用程序中,软件组件可以不必处于可见状态,只有当构建应用程序时,软件组件才需要处于可见状态。 例如,上面的构造工具中,显示出一个计算器组件,它是如下组件组成:16个按钮组件,文本域组件,放置按钮和文本显示区的面板组件。因为你是在构造工具中查看该软件组件,所以你可以观察到另外五个组件( 程序员在使用构造工具时,可以移动,查询或者可视化地组装组件。通常,这些另外的组件在应用程序运行时发挥作用,尽管对于用户来说,它们并不可见。 你可以从第三方软件商那里购买完成特定功能的JavaBean 组件,你也可以购买支持JavaBean的构造工具或开发程序。应用程序构造工具可以让你使用鼠标作为主要输入工具,来构造Java应用程序。一旦选取组件(可以从工具栏,面板或者菜单中选取)之后,就把它们放到表单或者客户窗口中。你可以通过编辑它们的属性,来改变这些组件的外观和行为,同时,你也可以通过事件和事件处理句柄,连接有关组件。 组件之间也可以嵌套,可以做得非常复杂。例如,由各种组件构造出的计算器,其自身也可成为另外一个应用程序的组件。客户自己构造的组件可以很容易地添加到构造工具库中。更为复杂的组件包括:棒图,流程图编辑器和字处理器。 JavaBean同Widgets的区别?JavaBean 定义了一个设计时间接口,该接口可以让应用程序设计工具或者构造工具对组件进行查询,以便了解组件所定义的属性种类,发出的事件类型或者所响应的事件类型。 在可视化的应用程序构造环境中,Bean有时后被看作可重用的软件组件或者定制的控件。诸如JavaBean这样的软件组件的封装同标准的Windows控件或者Motif widgets有所区别。它们封装了设计时间信息(属性和方法) ,这些可以让构建工具了解其能力。 除此之外,终端用户或者第三方的软件供应商,在定制Bean时,可以独立于GUI平台或者操作系统的种类。IS部门可以把这些第三方的软件组件散发给其企业的内部客户使用,或者也可以把这些组件作为附加组件出售给任何打算使用构造工具创建应用程序的人。 JavaBean同Java类的区别?任何一个符合某种属性和事件接口定义约定的Java类可以是一个JavaBean。Bean 是在可视化构造工具中可以被操作的Java 类,并且这些Java 类可以放置到应用程序中。 自检是构造工具分析Bean 如何工作的过程,它可以把Bean同典型的Java类区别开来。由于Bean是用预定义的模式,对其方法和类的定义进行编码的,所以,能够识别这些模式的软件工具就可以对Bean进行分析,并能够设定其属性和行为。 自检可以让Bean在设计阶段进行状态设置,即在作为一个零部件安装到一个大的应用程序的那一刻进行设置。为了实现这个目标,Bean的方法格式必须按照某种模式进行,这样自检工具在设计阶段和运行阶段都能识别出Bean。 实际上,Bean通过其方法中的特定模式发布其属性和行为,这些特定模式可被对应bean的应用程序构造工具识别。尽管如此,这些构造工具不是用来构造或者测试你的bean。同可以让构造工具识别出来一样,这些特定模式可以容易地让人工识别出来。当构造bean时,你首先要了解的是事情之一就是如何识别和构造符合这些模式的方法。 Bean不是什么场合都适合用的,它们最适合用作软件组件,可以在构造工具中,被可视化地操作。诸如JDBCTM API这些的功能仍然最适合通过编程程序接口或者文本接口来提供,而不适合由可视化接口提供。 Bean的基本概念不考虑其功能,JavaBean是由下列特征定义的。
一般情况下,Bean似乎主要是用于构造工具的场合,实际情况并非一定如此,Bean也可以通过编程接口被文本工具手工操作。同构造工具一样,所有的关键的API,包括对事件,属性和持续性的支持,都设计得容易被程序员阅读和理解。 如果你是第一次使用JavaBean,请用一下BDK的 BeanBox。尽管在本教程中,我们使用了BeanBox来创建一个JavaBean, BeanBox通常情况下,是用于测试JavaBean的。BeanBox被认为是个参考的构造工具环境。它既不是用来构造GUI应用程序的,也不同于诸如Visual Age,Delphi或Visual Basic这样的构造工具。 你可以先创建一个JavaBean,之后用BeanBox来测试其运行是否正常。如果一个JavaBean在BeanBox中运行正常,你可以确信它也可以正常工作于其他商用构造工具中。 启动BeanBox当你启动BeanBox时,你会看到三个窗口:
ToolBox窗口显示了当前安装在BeanBox中的JavaBean,例如BeanBox demo中带有的一些Bean。一旦BeanBox启动后,它将自动把bean/jars目录中的JAR文件所包含的Bean加载到ToolBox中。你也可以把另外的Bean,比如你自己设计的Bean,添加到ToolBox中。下面的课程中,我们将编写一个简单的JavaBean,以演示如何把Bean添加到ToolBox中。 BeanBox窗口一初始状态下是个空的窗口,你可以使用该空的窗口来创建应用程序,有时,该空的窗口在其它构造工具中被称为表单。 第三个窗口是Properties(属性)窗口,显示当前被选取的Bean的属性。当你第一次启动BeanBox时,或者当你点击了BeanBox窗口的背景区域时,如果当前没有Bean被选取,此时,属性窗口就显示出BeanBox的属性。你可以使用属性窗口来编辑Bean的属性。 使用BDK BeanBox使用Demo BDK提供的JavaBean要理解BeanBox是如何工作的,最简单的途径就是使用它。BeanBox可以让你无需编写任何Java代码,就可以构造简单的Bean应用程序。作为第一个例子,你可以构造一个简单的杂耍表演应用程序,该程序可以根据你所点击的按钮来启动或者停止抛撒咖啡豆的杂耍。 在本课中,你可以学到:
创建Bean开始时,我们从ToolBox中选取Juggler Bean,并它放到空的BeanBox窗口中。
完成你的程序要完成该例子程序,还要添加一个停止按钮。只需仿照上述步骤,重复进行即可: 1. 在Toolbox 菜单中,从现有的Bean中选取OurButton,之后把它放到BeanBox中启动按钮的下方。 一旦该新按钮成为当前的所选中的Bean,就会出现相应的属性编辑器。 2. 编辑属性表中的label(标签)域,使得其文字为stop。 3. 把stop(停止)按钮所对应的事件设置为Juggler的stopJuggling方法。注意,要确保stop(停止)按钮为当前所选的bean。 4. 从Edit/Events菜单中选择actionPerformed事件。 5. 把 stop(停止)按钮这个源Bean所对应的事件线拖到目标Bean Juggler(杂耍)上。点击并松开鼠标按键,使得直线把两个Bean连接起来。 6. Juggler Bean会显示出可以采用的事件处理方法的对话框,选择stopJuggling事件,并点击OK。 现在,你可以通过点击相应的按钮,来启动或者停止juggler(杂耍)了。 总结现在,你已经学会了如何从ToolBox 中选取各种Bean,并把它们放到BeanBox中。一旦放到BeanBox中之后,你可以使用Bean的属性表和属性编辑器来改变其外观。你也可以使用BeanBox 菜单中的选项,把一个Bean的事件同另外一个Bean建立关联,以便初始化和控制Bean的动作。 记住,BeanBox并不是一个应用程序构造工具,它的主要目的是用来测试Bean,以及验证自检和事件处理是否工作正常。你不要用BeanBox来来构造和运行一个应用程序。 相反,你可以把BeanBox作为一个参考构造工具,如果你的Bean在BeanBox中能够正常运行,而且结果表明,该bean生成和响应了合适的事件,你可以确信的是:该bean在其他支持Bean的构造工具中也一定会正常工作 |