ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:22.66KB ,
资源ID:23801986      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23801986.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可视化Java界面模板集成开发工具的设计与实现.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

可视化Java界面模板集成开发工具的设计与实现.docx

1、可视化Java界面模板集成开发工具的设计与实现可视化Java界面模板集成开发工具的设计与实现第10卷第1期2006年3月扬州职业大学学报Journal0fYangzhouPolytechnicCollegeVr)1,10NO,1Mar.2006可视化Java界面模板集成开发工具的设计与实现张文,潘荫荣,胡幼华(华东师范大学,上海21)0062)摘要:介绍了一种可视化Java界面模板集成开发工具的设计思想与具体实现方法.该工具包含界面设计嚣,能提供给用户图形的可视化方式来设计界面;集成了自制布局管理器,该布局管理器能灵活控制控件的大小和位置;此集成开发工具能将界面内吝保存在模板实例中以便修改及重

2、用,并能根据模板实例生成界面程序源代码.该集成开发工具已用于作者开发的项目,取得了良好的效果.关键词:Java;布局管理;界面模板中图分类号:TP3l2文献标识码:A文章编号:10083693(2006)01003304TheDesignandImplementationofTemplateIntegratedDevelopmentToolforaVisualJavaInterfaceZHANGWen,PANYinrong,ttUYouhua(EastChinaNormalUniversity,Shanghai200062,China)Abstract:Ihedesignandimplemen

3、tationoftemplateintegrateddevelopmenttoolforavisualJavainteffaceisdealtwithinthispaper.Thistoolcontainstheinterfacedesigncomponentwhichgivesgraphicstyletousersobuildinterface.Also.itintegratesanewlayoutmanagerwhichcanflexiblycontrolcomponentssizeandlocationanditcouldsavethecontents0finterfacetothein

4、stancesoftemplatewhichcanhelpeditingandreusing,alsobuild.sourcecodesbytemplateinstances.ThistoolhasbeenappliedintheauthorSprojectandgainedperfecteffectS.Keywords:Java;laye)utmanager;interfacetemplate在应用程序的研发过程中,程序界面的开发占用了大量时问.Java为程序界面开发提供了布局管理器,它能自动拧制容器中加入的组件的位置和尺寸,大大减少了程序员制作界面的工作量.但Java提供的现有的几种布局管

5、理器功能有限,它们只能解决一般的界面开发问题,并不能完全满足界面开发的要求.实际应用中一种常见的要求就是以行,列方式显示众多信息.符合上述要求的只有GridBagLayout.但如果缩放使用它的容器,容器包含的控件不会产生相应缩放行为,从而破坏了整个界面的协调与一致性.随着Java1.4.2版本的推出,Java提供了新的布局管理器来支持现有布局管理器,如SpringLayout,它提出了相对布局的概念,但它对不同组件设定了相应缩放规则,用户不能自己设置组件的缩放规则,因此SpringLayout对控件的缩放控制仍有局限性.由于Java具有跨平台等众多优点,采用Swing组件编写应用程序界面越来

6、越流行.但是收稿日期:2005lO一28作者简介:张(1981),男,华东师范大学计算机科学技术系硕士研究生;潘荫荣(1946),男,华东师范大学计算机科学技术系教授,博士生平师;胡幼华(1946一),女,华东师范大学计算机科学技术系教授,博士生导师扬州职业大学学报第10卷目前的布局管理器功能有限,因此,本文设计了一种定制布局管理器MyLayout,它能灵活地控制容器内组件的位置及缩放行为,有效地支持现有的布局管理器.为r方便用户使用,作者自行设计和实现_一个可视化集成界面开发具.该工具包括了MyLayout布局管理器,并包含大多数常用组件,使用户通过鼠标的拖放即可完成界面的开发.用户调整好界

7、面后还可利用该工具自动生成源代码.并将界面内容保存在界面模板实例中,然后町取界面模板实例重现界而以方便用户修改.界面模板技术是国内外一项热门研究领域,一文献对界面模板技术I10j作过详细研究.但由于Java界面开发的特殊性,现有模板技术不能方便的用于Java界面开发,而现有开发工具又不能添加自制布局管理器,因此有必要为Java的界面制作开发专用工具_3J.在作者开发的一个进销存物流管理系统中,使用这个工具开发了全部的用户界面,取得了很好的效果.1设计目标作者在对MicrosoftVisualStudio系列和BorLandJBuiLder等着名集成开发环境进行了研究和分析,并综合考虑了实际界面

8、开发的需要后,确定该集成工具要实现以下3个关键技术:(1)用户界面设计器:添加控件,设置控件位置和大小时能在视觉上给用户反馈.在拖动控件位置时,能绘制出控件拖放的位置.在设置控件大小而拖动控件边框时,要绘制控件边框以反映控件的当前大小.(2)设计自制布局管理器MyLayout类.(3)界面模板管理器:用JTree控件显示界面布局信息.设计界面模板,通过模板实例保存界面信息,可读取模板实例重现界面内容,能通过对模板实例的分析自动生成源代码.2具体设计与实现2+1用户界面设计器的设计与实现为了加快软件界面开发的速度和效率,着名集成开发环境均提供r用户界面设计器,用户在布局时可直接修改控件的大小,位

9、置,名称等属性和调整界面整体的协调性,而不必再通过反复的调试源代码来达到上述目的.提供给用户布局时的视觉反馈是可视化界面设计功能工作的第一步.在对现有工具的比较和对实际工作经验分析后,总结出给用户的视觉反馈必须完成以下要求:(1)用户添加控件时.必须绘制用户当前用鼠标拖放的区域以显示控件的当前大小.(2)添加控件后.鼠标在控件上方移动或按下时,鼠标应改变形状以提示程序员可以进行的工作.(3)在允许改变控件大小情况下,在控件边框按下鼠标后拖动时,必须模拟绘制控件边框以反映控件的当前大小(4)在允许改变控件位置情况下,在控件中心区域按下鼠标后拖动时,必须模拟绘制控件边框以反映控件的当前位置.为完成

10、上述功能,被添加的控件必须实现MouseListener,MouseMotionListener和ComponentIistener接口l4lBasePanel控件继承自JPanel,它实现了上述接口的关键方法,因此,以下的介绍均以BasePaneL为例.在BasePaneL的构造函数中,初始化Rectangle类型的activeRegion变量以及rectAnchors数组,它们将在更改控件大小或控件被设置为BorderLayout时使用.MouseListener接f_=1的mouseMoved()方法处理了要求(2)的工作.具体实现该方法时先得到事件发生时鼠标的位置,然后判断此时鼠标坐标

11、是否在activeRegion矩形范围内:若是则恢复鼠标形状为默认形状;否则设置bResize标志(表示鼠标位于控件边框上,故此时可以改变控件大小),同时判断鼠标在边框上的位置(哪条边或哪个角上),并给iShape变量赋值来记录这些位置信息,而且改变鼠标的形状来反映鼠标所在的位置.MouseListener接口的mousePressed()方法处理鼠标左键在控件上按下的事件.具体实现的流程如下:if(bResize标志末被没置)/表示准备改变控件位置或添/加控件if(SlidePanel,className变黾不为空)/表示准备添加控件设置bPaint标志,并记录起始位置为鼠标位置else/表

12、示准备政变控件的位置-f(控件的父容器允许改变控什位置)若父容器为BorderLayout,则设置bBorderIayotit标志第1期张文等:可视化Java界面模板集成开发T具的设计与实现35若父容器为MyLayout,则设置bMyLayout标志,并记录起始位置为鼠标位置else改变控件大小设置bRcsizable标志文中bPaint,bResizable标志分别表示添加控件或改变控件大小时需绘制控件边框;bBorder,bMyLayout标志分别表示父容器为BorderLayout或MyLayou布局时需要绘制控件被拖放到的位置.MouseMotionListener的mouseDrag

13、ged()方法处理随后的鼠标拖动事件,它模拟绘制添加的控件大小,更改控件大小时的边框或更改控件位置时的边框,实现流程如下:If(bPaint标志被设置);记录终止位置为鼠标位置,调用re.paint()方法if(IResizable标志被设置)j由iShape值重新计算起始及终止位置,调用repaint()7y法if(blkrder标志被设置)根据鼠标存父容器中的位置及rectAnchom数组的值凋用父容器的方法绘制矩形区域,表示控件将被放置的方位if(hMyLayout标志被设置)根据鼠标当前位置计算鼠标偏移,传人父容器,并调用父容器方法绘制控件的当前拖放位置本文重新实现了BasePanel

14、的repaint()方法,该方法根据设置的起始和结束位置绘制矩形框,实时显示修改的控件信息,完成视觉反馈功能.MouseListener接口的mouseReleased()方法检查上述标志位,若标志位被设置,则先将该标志位复位.对于bPaint标志,应先根据SlidePanel的className变量生成对应的控件,添加到BasePanel或其子类中,然后复位标志位;对于bResizable标志,应更改控件大小;对于blsolate或bBorder标志,应更改位置及大小.按照上述方法实现了BasePanel类后,针对不同的布局管理器,构造相应的子类Panel,它们拥有对应的布局管理器功能.其他

15、可添加组件实现方法类似,不再赘述.2+2自制布局管理器MyLayout类一个友善的用户界面在主界面窗口大小变化的同时,其包含的子控件也应能适当地调整它们的位置和大小以反映这种变化.Java自带的多种布局管理器不能完全满足这个需求,因此,本文设计定制MyLayout布局管理器来解决这个问题.在主界面大小变化时,其包含的控件的变化可分为几种情况:大小不变而仅仅位置变化,大小改变而位置不变,两者都改变或两者均不变,这四种情况能反映窗口缩放时对控件缩放的要求.在构造MyLayout类时,我们设置LFSF,LFSC,LCSF,LCSC(L:Location,F:Fixed,S:Size,C:Change

16、)四个公有静态变量,它们分别代表上述四种情况,将作为限制条件的一部分随控件加入容器中.布局管理器要实现getMaximumSize(),getPreferredcSize()和getMaximumSize()三个方法,它们用于返回显示所有控件需要的空间量,以下以getMaximumSize()为例.该函数包含int类型变量weight,height变量,它们被初始化为0.具体实现该方法时遍历容器包含的所有控件,若当前控件使用getMaximumSize()后得到的控件右下角横坐标大于weight,则将此横坐标赋值给weight,同理对height变量做相同操作.遍历结束上述两个变量代表的范围表

17、示控件需要的最大空问量,将其返回给容器.布局管理器的layoutManager()方法负责设置容器中子组件的尺寸与位置.为了设置控件的大小,我们用container.getSize()方法得到容器当前的宽width和高height,并将它们与容器的初始宽与高进行比较得到X轴大小变化比例xPercent和Y轴大小变化比例yPercent.然后遍历控件,在对它们使用setBounds(intx,inty,intwidth,intheight)方法来设置位置和大小时,首先取得它们初始的左上角位置,宽和高度,然后根据控件附带的限制条件进行缩放.比如对于LFSC(位置固定而大小改变),为了在设置控件大小

18、时改变控件的宽度,使用(int)(originWidthpercent)代替width的值,从而使该控件长度变化的幅度和容器长度的变化幅度相同.前文提到的GridBagLayout布局管理器在容器大小固定的情况下运行良好,但一旦容器大小变动,便会出现空白区域或控件的控件宽度变得很窄等界面不协调一致的问题.本文设计的MyLayout布局管理器能让用户自己设置控件的缩放规则,在容器大小变化时MyLayout能根据控件被设定的缩放规则灵活的改变位置和大小,不扬州职业大学学报第10卷会出现上述问题.因此,MyLayout是一种应用前景广泛的自制布局管理器.2.3界面模板管理器的设计与实现采用Java编

19、写的程序界面具有共同的格式,它使用容器包含界面组件,而且容器也可以再包含容器,从而容易构建出复杂的程序界面.以上所述的界面结构类似颗树,容器是树根或树枝,而组件是叶子节点.因此,我们采用xm设计界面模板.xm中的每个元素代表一个容器或组件,而容器或组件的属性则可存储在xml节点属性中,设汁的xm的DTD如下:<!ElEMEN一1c.ntainer(c0ntainerlcomIxment)*><!ATTIISTcontainerllaIIICCI)NFA#RFQUIREDtypeCDATA#REQUIREDanchor(I)ATA#IMHlED><!ELEMENTc

20、omponentEMVIY><!ATTLIbH,comtxmentnstle(ATA#REQUIREDtypeCDAFA#REQUIREDtextCDATA世REQUIREDanchorCDAFA#IMILlED>在用户设计界面时,工具采用JTree类型变量来动态表示界面的信息,树变量的根节点代表界面最外层的容器.当用户添加一个控件后,接收MouseEvent事件的控件是父组件,SlidePanel中被选中的组件是子组件.因为被添加的组件的toString()方法被覆盖,所以树节点的显示文本是实际生成的代码中的变量名称.遍历树,寻找与父组件同名的树节点,以子组件为构造函数的参

21、数创建新的树节点,添加到父节点中,从而完成对树的更新.用户可双树节点来更改组件的属性.当更改组件名称时,必须遍历整个树,查看是否有组件与新的组件名称相同,若有则修改失败;若没有同名组件则组件的名称被成功修改.用户完成界面设计后,可将界面信息(即树的内容存)储到模板中,此时应遍历树,对每个树节点构造对应的xml元素,并通过读取树节点包含的组件的属性来对xml元素的属性赋值.我们采用IX)M方法来构造上述的xml文件.在xml构造完成后,将xml根元素传人文件输出流中,则xml将自动保存为界面模板实例.凄取模板实例是上述过程的逆过程,在此不再赘述.该工具通过对模板实例的分析来生成界面程序源代码.在

22、使用DOM方法读人xml后,遍历文档,对每种元素调用对应方法,它们负责将元素的属性加入源代码中.具体的实现是采用递归的方法,递归函数接收两个变量一一元素的子节点和父节点代表的变量名,在第一次调用该函数时父节点变量名为this,代表向JPanel中添加控件.采用上述方法,能快速生成源代码.3结语本文设汁和开发的可视化Java界面集成开发工具能高效开发出应用程序界面的组件.该工具集成了用户界面设计器,自制MyLayout布局管理器和界面管理器,能方便地添加新的控件,因此,该工具具有良好的可扩充性;能以可视化的方式编辑界面,易于调试;能以树形结构直观地展现控件分布,以XML方式保存界面信息,并能读取

23、XML文件重现界面及生成源代码,使程序员从繁重的界面编制_丁作中解脱出来,专心进行逻辑层与数据层的工作.该工具已经成功地应用在作者负责开发的进销存物流管理系统中.作为一种灵活实用的可视化界面开发工具,它具有广泛的应用前景,参考文献:1万建成,孙彬.支持用户界面自动生成的界面模型J.计算机工程与应用,2003(18):114l18.2吴桂阳,万建成.基于XMI的界面模板技术J.计算机应用研究,2004(10):51.3JPINHEIRODASIIVAP,GRIFFIlHST,PATONN.GeneratingUserInterfaceCodeinaModelBaUserInterfaceDevelopmentEnvironmentCf.InProceedingsofAdvancedVisuallnterfaces,2000:155160.4郭旭,朱洁斌,吴宁文.JbV核心编程M北京:清华大学出版社,2003.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1