Beans Development Kit (BDK)分析(四)

原创 2003年06月03日 22:04:00
 

设计面板

       主要介绍BeanBoxFrame提供的主要方法和功能。因为BeanBoxFrame是用了单态模式,所以使用了大量的静态成员变量和静态成员函数。这样的好处在于不需要通过传递引用来影调用BeanBoxFrame的功能,而直接通过静态方法来执行,避免复杂调用中引用传递的错误。

l         private boolean inBeanBox(Component c)用于判断一个Bean实例是否在BeanBox<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

l         public void actionPerformed(ActionEvent evt)操作菜单事件

l         public void propertyChange( PropertyChangeEvent evt)处理属性变化中的designMode变化事件

l         static void setCurrentComponent(Component focus)设置当前的组件

l         public void run()内部线程,用于处理焦点Bean的变化

l         private void doSetCurrentFocus(Component focus) 设置当前的焦点Bean

l         public void setCustomizer(Customizer c)设置组件的属性浏览器

l         public void layoutContainer(Container parent)配置容器的层管理器

l         对于ToolBox, TopBox, TopWrapperset/get方法

接着介绍BeanBox,在BDK中,这个作为设计的容器。允许所有的Bean能够在BeanBox中可视化的操纵,可以直接使用相关联的属性浏览器进行属性的浏览和修改。

l         public Wrapper getTopWrapper()获取顶层Wrapper也就使BeanBox

l         public synchronized void updateMenuBar(MenuBar bar)根据当前的BeanBoxBean设置菜单条

l         private void addMenuItem(BeanBoxFrame frame, Menu m, MenuItem mi)添加菜单项

l         private synchronized String serFileName(Object o)为串行化指定对象创建标示符

l         private void serializeComponent()串行化组件到指定的文件,实现“serializeComponent”的菜单项

l         private void makeApplet()实现“makeApplet”的菜单项

l         private void load()实现“load”的菜单项

l         private void writeObject(java.io.ObjectOutputStream oos) 用于支持串行化

l         private void readObject(java.io.ObjectInputStream ois)用于支持串行化

l         private void print()用于支持BeanBox内容的打印

l         private void loadJar()实现“loadJar”的菜单项

l         private void cut()支持剪贴板的cut操作

l         private boolean copy()支持剪贴板的copy操作

l         private void paste()支持剪贴板的paste操作

l         private synchronized Wrapper getConnection(Wrapper sourceWrapper)实现两个Bean的联系

l         void doEventHookup(ActionEvent evt)从源到目标建立一个事件联系

l         private Rectangle getLocalCoordinates(Component c)获取BeanBoxBean的位置

l         public void mousePressed(MouseEvent evt)支持鼠标选中事件

l         public void mouseReleased(MouseEvent evt)支持鼠标释放事件

l         public synchronized void mouseDragged(MouseEvent evt)支持鼠标拖动

l         public synchronized void mouseMoved(MouseEvent evt)支持鼠标移动

l         void doMenuItem(ActionEvent evt)该方法被menuWorkerThread来调用处理相应的菜单事件

l         public void doInsert该方法用于插入一个Bean实例到BeanBox

l         public synchronized void queueMenuItem(ActionEvent evt)用于在处理菜单的线程中调度菜单项同步的执行

l         public void run()帮助最小化AWT事件线程的任务,防止死锁

l         void startMove(Wrapper child, int x, int y)设置开始移动的位置

l         Rectangle getMoveBox(int mx, int my)绘制移动的Bean

l         void finishMove(int mx, int my)设置停止移动的位置

l         void startResize(Wrapper child, int x, int y, Cursor cursor)设置大小的改变

l         Rectangle getResizeBox(int mx, int my)获取在改变大小的Bean

l         void finishResize(int mx, int my)完成大小的变化

l         void resetViewMenu()设置菜单显示的状态

工具栏

       ToolBox继承了Frame类,其主要实现是通过ToolBoxPanel来完成具体的功能。

l         void addWithUniqueName(Vector v, String s)

l         synchronized void addBeansInJar(String jarFile)Jar文件载入Bean加入到工具栏中

l         synchronized void addBeanClass(String beanClassName)用于登记BeanBox

l         public Dimension getPreferredSize()获取最佳大小

l         public void paint(Graphics g)重新绘制显示

l         public void run()使用一个内部线程来处理Bean插入到工具栏

l         public Vector getLoadedJarInfo()获取载入Jar文件的信息

l         private static Vector getJarNames()获取要载入的Jar文件名

l         实现MouseListener接口的方法

属性浏览器

       PropertySheet继承了Frame类,其主要实现是通过PropertySheetPanel来完成。

l         synchronized void setTarget(Wrapper targ)设置要浏览的Bean

l         void stretch()用于窗口调整时调用

l         private void doLayout(boolean doSetSize)调整界面的位置

l         synchronized void setCustomizer(Customizer c)设置要属性的Customizer

l         synchronized void wasModified(PropertyChangeEvent evt)执行属性的修改和相关操作(是关键的方法)

工具类

       为了辅助BDK的功能实现,设计了丰富的工具类,我们将用新的一章来介绍。

Beans Development Kit (BDK)分析(一)

 Beans Development Kit (BDK)分析前言:       应该很多人都开发过JavaBean的组件,是否对它有一个比较完整地了解呢?是否知道Sun公司提供的这个BDK呢?是否羡慕...
  • copyright
  • copyright
  • 2003年06月02日 10:47
  • 1090

Beans Development Kit (BDK)分析(二)

  二.框架分析       首先要对该源代码的框架作分析,先要得到源代码,该源代码的下载地址是(http://java.sun.com/beans/)。目录介绍:l         beanbox目...
  • copyright
  • copyright
  • 2003年06月02日 10:50
  • 1236

Beans Development Kit (BDK)分析(五)

 四.BDK工具类从Jar文件的操作到ClassLoader,从Applet类的制作到Bean的Applet封装,从类的编译到辅助信息的显示,从Bean的封装到各种类型的属性编辑器,从封装事件信息到串...
  • copyright
  • copyright
  • 2003年06月06日 12:53
  • 915

Beans Development Kit (BDK)分析(六)

5.其它l         ObjectInputStreamLoader.java    作为ObjectInputStream的子类,代理为存在的ClassLoader加载类。主要用于加载基本类型...
  • copyright
  • copyright
  • 2003年06月06日 12:59
  • 940

Beans Development Kit (BDK)分析(三)

  三.模块介绍       BDK的主要模块分为:设计面板,工具栏,属性浏览器,跟踪器和工具类。前三者主要是界面的表示,工具类是一个包含封装,Jar文件加载,类编译,事件监听等等。启动过程     ...
  • copyright
  • copyright
  • 2003年06月03日 22:23
  • 895

Android Native Development Kit (NDK)

1.  Introduction Android apps are typically written in Java, with its elegant object-oriented des...
  • wave_1102
  • wave_1102
  • 2014年09月07日 23:21
  • 1448

Intel® DPDK: Data Plane Development Kit

intel dpdk技术论述: Intel DPDK的相关介绍无需多说,能接触到它的人自然知道,无法接触到的人知道了也没用,目前从因特网下载不到源码,因为据说DPDK尚处于“Early Ac...
  • stone548534
  • stone548534
  • 2013年12月19日 10:43
  • 5479

Java SE Development Kit的下载、安装及环境变量的配置

目前Java SEDevelopment Kit最新的版本为Java SE Development Kit 8u112(以下简称JDK)。下面将逐步介绍该版本Java SDK的下载、安装步骤及其环境变...
  • BinGISer
  • BinGISer
  • 2016年11月28日 11:11
  • 5066

怎样安装Ruby development kit

windows下安装DevKit 六 4th, 2011 发表评论 | Trackback 超简单的办法 如果你是ruby刚入门,推荐这个方法。 http://rub...
  • legend_x
  • legend_x
  • 2013年09月10日 22:53
  • 1218

a java runtime environment (jre) or java development Kit (jdk) must be..

打开eclipse或者其他以eclipse为核心的java编辑器时,报错“a java runtime environment (jre) or java development Kit (jdk) ...
  • u013785779
  • u013785779
  • 2014年02月26日 09:38
  • 776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Beans Development Kit (BDK)分析(四)
举报原因:
原因补充:

(最多只允许输入30个字)