当前位置: 首页 > 工具软件 > bdk > 使用案例 >

Beans Development Kit (BDK)分析(四) (转)

高晋
2023-12-01
Beans Development Kit (BDK)分析(四) (转)[@more@] 

设计面板

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

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

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

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

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

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

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

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

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

对于ToolBox, TopBox, TopWrapperset/get方法

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

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

public synchronized void updateMenuBar(MenuBar bar)根据当前的BeanBox和Bean设置菜单条

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private Rectangle getLocalCoordinates(Component c)获取BeanBox中Bean的位置

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

工具栏

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

void addWithUniqueName(Vector v, String s)

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

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

public Dimension getPreferredSize()获取最佳大小

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

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

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

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

实现MouseListener接口的方法

属性浏览器

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

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

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

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

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

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

工具类

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-958463/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-958463/

 类似资料: