Beans Development Kit (BDK)分析(二)

 

.框架分析

       首先要对该源代码的框架作分析,先要得到源代码,该源代码的下载地址是(http://java.sun.com/beans/)。目录介绍:

l         beanbox目录:BeaBox的源程序,class文件,支持lib,以及执行文件和编译配置等帮助文件。

l         demo目录:用来演示JavaBean的一些例子源代码文件。

l         doc目录:关于BDK的文档和API手册。

l         jars目录:存放需要加载到工具条的JavaBeanjar文件。

l         lib目录:支持库方法跟踪的jar文件。

l         GNUmakefile文件:编译配置文件。

l         infobus.jar文件:支持infobusjar文件。

l         LICENSE.html文件:许可证。

l         Makefile文件:编译配置文件。

l         README.html文件:自述文件。

文件结构

目录结构是以下所示:

源代码目录树:

├─sun

  ├─beanbox

    └─simpleresource

└─sunw

    ├─beanbox

    ├─demo

      ├─buttons

      ├─classfile

      ├─delegator

      ├─encapsulatedEvents

      ├─jelly

      ├─juggler

      ├─methodtracer

      ├─misc

      ├─molecule

      ├─quote

      ├─select

      ├─sort

      ├─test

      └─transitional

└─wrapper

 

类介绍

       为了理解的方便,首先对每一个类的大概功能作一个描述,先让大家有初步的了解。针对要讲解的是框架,所以不介绍demo目录下面的类的功能。

1.         sun.beanbox

l         AboutDialog.java      BeanBoxAbout Dialog

l         AppletClassGenerator Applet自动产生Applet类代码

l         AppletGenerator.java 由组合的Beans产生Appletjar文件

l         BeanBox.java         作为JavaBean的容器

l         BeanBoxFrame.java     作为一个顶级的frame来容纳Beanbox,管理菜单和跟踪当前焦点的Bean

l         ClassCompiler.java   执行编译Java源代码的类,形如sun.tools.javac.*的功能

l         CustomizerDialog.java    作为一个普通的组件编辑器,封装了一个Dialog

l         DoOnBean.java        在创建Bean的时候要执行的动作的接口

l         EditedAdaptor.java   属性编辑适配器,实现了PropertyChangeListener接口

l         ErrorDialog.java      抛出一个模态的错误Dialog,继承了MessageDialog

l         EventTargetDialog.java   用来为焦点Bean定制事件的对话框

l         FileExtension.java   用来过滤文件的类,实现了FilenameFilter接口

l         HookupManager.java   管理事件源bean和目标bean的目标方法之间的钩子,将为每一个钩子都产生一个类,作为适配器编译加载到ClassLoader

l         IBSupport.java        使用该类来支持infoBus机制来和bean通信

l         IndentedStream.java  这个工具类是用来产生源代码文件的

l         InputStreamProducer.java 该接口按需提供一个输入流

l         JarAccess.java        该类实现了一个简单的使用jar文件格式来创建文件的工具

l         JarEntrySource.java  用于请求创建jar文件

l         JarInfo.java         代表一个载入的jar文件,包含该文件的信息

l         JarLoader.java        读取jar文件的内容

l         MakeAppDlg.java       要求制作Applet的对话框

l         Manifest.java        代表jar文件的Manifest信息

l         MessageDialog.java   弹出提示信息的对话框类

l         MessageHeader.java   定义消息头部

l         ObjectInputStreamLoader.java    作为ObjectInputStream的子类,代理为存在的ClassLoader加载类

l         OurLabel.java        用一个字符串代表一个不可见的bean

l         PropertyCanvas.java  支持在一个Canvas上画出一个属性值

l         PropertyDialog.java  用一般的编辑器来持属性编辑器

l         PropertyHookupManager.java  用来管理属性之间的钩子,以便于一个对象上属性的变化能够传递给和它相关的属性

l         PropertyNameDialog.java  属性对话框用来查找一个给定的源对象的属性

l         PropertySelector.java    用来支持属性编辑器的标签选择

l         PropertySheet.java   属性编辑表格,列出了可以编辑的所有属性

l         PropertyText.java    用来支持属性编辑器的文本输入

l         Report.java          从一个给定的Bean类提取内部信息的报告

l         SimpleClassLoader.java   继承了ClassLoader,被JarLoader用来载入类和资源

l         StartFrame.java       BeanBox开始的时候用来显示一个欢迎信息

l         Timer.java           工具类,用于内部的时间操作

l         ToolBox.java         显示可用于BeanBoxJavaBean的图表和ID

l         WindowCloser.java    工具类,用于捕获目标窗口的关闭事件

l         Wrapper.java         用于跟踪在设计窗口的每个BeanBeanBox中的相关状态

l         WrapperEventInfo.java    事件监听器的钩子信息

l         WrapperPropertyEventInfo.java   继承了WrapperEventInfo类,用于当连接到一个具体的属性

2.         sun.beanbox.simpleresource

l         Handler.java         继承了URLStreamHandler类,用于资源的请求

l         SimpleResourceConnection.java   继承了URLConnection类,用于资源的连接和获取

3.         sunw.beanbox

l         AppletSupport.java   在产生的Applet中,需要支持Applet的实例化

l         PropertyHookup.java  管理属性间的钩子信息,以便于属性变化能够通知相关的属性

4.         sunw.wrapper

l         BeanWrapper.java     继承了Applet类,是为了支持那些本身就不是AppletBean,以便于它们可以直接在HTML文档中显示

 

基本框架

       我针对BDK的框架的理解,划出了一下结构图:

 

       其程序运行界面如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值