`
henrydlwang2015
  • 浏览: 931 次
文章分类
社区版块
存档分类
最新评论

Draw2D使用心得

阅读更多
   最近在开发Eclipse插件的过程中,需要展现COBOL作业的TWS调用流程,打算通过在Eclipse的视图中展现。大致的处理流程是:开发人员通过菜单选择查询TWS流程图选项,弹出对话框,输入需要查询的作业ID和环境参数,系统去主机DB2查询作业的关系数据库,将关系组装成Map表返回给Exclipse,Exclipse再通过解析Map并在视图中展现作业调用关系。
   整个流程关键是展现,需要图形化。经过考虑查找,决定使用DRAW2D。这个过程非常闹心,毕竟是新的框架,下面是使用心得。
   1、FigureCanvas可以作为底层画板,不用再实例化LightWeightSystem,因为FigureCanvas实例化之后会自行创建一个LightWeightSystem.
   2、为了将图形展现在不同层次,需要创建Layer层,并通过LayeredPane来管理每个Layer的层次
   3、ScrollPane支持滚动条,如果图形展现区域比较大,可以将图形加载在ScrollPane上面,但是图形在展现前能通过调用layoutManger获取子图的大小,以便计算scroll的position和extent的大小。
   4、PolyConnection不受FlowLayout的限制,即如果layer层加了PolyConnection,且layer的layoutManger是FlowLayout,PolyConnection还是以SourcePosition 和TargetPosition决定。而不是顺序排列。
   5、AbstractLayoutManager中的Layout()方法是设置各个子图的在本图层的位置(setBounds)的,不能在这个方法中更新本图层的位置,否则出现死循环,原因是:LightWeightSystem会维护一个UpdateManger,用来更新每个invalidate的figure;如果本图层(figure)在updateManager的invalid的列表里了,那么updateManager就会调用本图层(figure)对应LayoutManager的Layout()方法,并把本图层从invalid list中剔除,但是如果layout()方法又调用了figure.setBounds()等会导致figure的状态invalidate时,则updateManger又会将本图层加入到他的invalid List里面,这样就死循环了。
分享到:
评论

相关推荐

    精彩编程与编程技巧-DirectX7.0使用心得(1)...

    ### 精彩编程与编程技巧:DirectX7.0使用心得 在计算机图形学领域,DirectX一直是不可或缺的一部分,尤其是对于游戏开发人员而言。DirectX7.0作为早期版本之一,虽然现在已经不是最新的技术标准,但对于理解DirectX...

    unity的一个2D飞机游戏完整项目

    这可能涉及到降低Draw Call、使用批处理、优化碰撞检测、资源池管理等方面,确保游戏在各种设备上流畅运行。 通过这个2D飞机游戏项目,开发者不仅可以掌握Unity的基本使用,还能深入了解游戏开发的各个环节,提高...

    cocos2d-x简易动作游戏源码

    《cocos2d-x简易动作游戏源码解析》 cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,支持iOS、Android...通过阅读博主的博客,我们可以获取更多关于这个项目的具体细节和开发心得,进一步提升cocos2d-x的使用能力。

    Maxwell平行板电容器2D仿真实例.doc

    本文档主要介绍了使用Ansoft Maxwell软件对平行板电容器进行2D仿真的过程和结果分析。实验的目的是加强对静电场场强、电容、电场能量的理解,应用静电场的边界条件建立模拟的静态电场,解决电容等计算问题,并提高...

    2D DirectX Game Engine-开源

    在2D游戏领域,DirectX主要通过DirectDraw和Direct3D的部分功能来实现图像渲染。这个开源的2D DirectX游戏引擎,利用DirectX的强大功能,旨在为开发者提供一个易于上手、功能丰富的开发环境。 在提供的压缩包中,...

    Learning-Lua-Process:我在Love 2D游戏引擎上学习lua的学习进度

    本文将深入探讨在Love 2D上学习Lua编程语言的过程,分享学习心得,并对相关知识点进行详尽解析。 自2020年3月起,我开始了这段探索Lua和Love 2D的旅程。在这个过程中,我逐步理解了Lua语言的核心特性,如它的弱类型...

    Windows游戏编程大师技巧(第二版)_英文版

    - **DirectDraw**:讲解了DirectDraw的基本原理及其在2D图形渲染中的应用,包括位图加载、颜色键设置、伸缩变换等功能。 - **DirectSound**:深入介绍了DirectSound的工作机制,包括声音播放、混音、声音效果添加等...

    Visual C++学习方法

    - **DirectDraw与3D图形**:学习使用DirectDraw进行2D绘图,以及Direct3D进行3D渲染。 - **游戏逻辑与物理**:掌握游戏中的逻辑处理和物理模拟技巧。 6. **实战项目经验** - **小项目实践**:通过实际编写简单的...

    程序设计经典书目推荐

    5. **DirectX 9 手册** —— 特别是 DirectDraw、DirectSound、DirectShow、DirectInput 等组件,对于实现高质量的图形和声音效果至关重要。 6. **游戏引擎相关资料** —— 推荐访问游戏引擎网获取最新的技术和资源...

Global site tag (gtag.js) - Google Analytics