仓酷云

标题: 发布一篇Java中利用Draw2D和SWT画图 [打印本页]

作者: 小妖女    时间: 2015-1-18 11:14
标题: 发布一篇Java中利用Draw2D和SWT画图
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。
用Java画图一向都吸引着开辟职员的注重。传统上,Java开辟职员利用java.awt.Graphics或Java2DAPI举行画图。一些开辟职员乃至利用现成的开源工具箱(如JSci)来画图。但良多时分,您的选择被限制在了AWT或Swing上。为了最年夜限制地削减对第三方工具箱的依附,大概为了简化画图基本,能够思索利用Draw2D,并编写本人的代码来制图或画图。
Draw2D简介
Draw2D是一个驻留在SWTComposite之上的轻量级窗口小部件体系。一个Draw2D实例由一个SWTComposite、一个轻量级体系及其内容的图形构成。图形是Draw2D的构建块。关于Draw2DAPI的一切细节,能够从Draw2DDeveloper’sGuide的Eclipse匡助文件中找到。由于本文不盘算成为一篇报告Draw2D的教程,以是,为了烦琐起见,只需您懂得Draw2DAPI能够匡助您在SWTCanvas长进行画图就充足了。您能够间接利用一些尺度的图形,好比Ellipse、Polyline、RectangleFigure和Triangle,大概,您能够扩大它们来创立本人的图形。别的,一些容器图形,如Panel,能够充任一切子图形的总容器。
Draw2D有两个主要的包:org.eclipse.draw2d.geometry和org.eclipse.draw2d.graph,本文中利用了这两个包。org.eclipse.draw2d.geometry包有一些有效的类,好比Rectangle、Point和PointList,这些类都是自我注释的。另外一个包org.eclipse.draw2d.graph开辟职员利用的大概不是太多。这个包供应了一些主要的类,好比DirectedGraph、Node、Edge、NodeList和EdgeList,这些类有助于创立图表。
在本文中,我将注释怎样利用Draw2D编写代码,匡助您以图形的体例抽象化您的数据。我将从一项手艺的形貌入手下手,该手艺将位于某一局限内的数据值(好比,从0到2048)按比例缩放成另外一局限内的等效数据值(比方,从0到100)。然后,我将举例申明怎样绘制出恣意个级数的X-Y坐标图,每一个级数都包括一组数据元素。在进修了本文中的观点以后,就能够很简单地绘制其他范例的图表,好比饼图和条形图。
详细的画图历程
步骤1:您想绘制甚么样的图形?
明显,您想以图形体例刻画来自数据源的数据。以是,您必要那些您想以图形情势抽象化的数据。为了烦琐起见,我利用了一个名为dataGenerator的复杂函数天生的数据,而不是从XML文件或其他一些数据源读取数据,该函数利用了一个for(;;)轮回,并以数组列表的情势前往天生的值。
清单1.天生一些数据
privateArrayListdataGenerator(){
 doubleseries1[]=newdouble[5];
   for(inti=0;i<series1.length;i++)
   series1[i]=(i*10)+10;//alinear 
   seriescontaining10,20,30,40,50

   doubleseries2[]=newdouble[9];
   series2[0]=20;series2[1]=150;series2[2]=5;
   series2[3]=90;series2[4]=35; series2[5]=20;
   series2[6]=150;series2[7]=5;series2[8]=45;

   doubleseries3[]=newdouble[7];
   for(inti=0;i<series3.length;i++)
   series3[i]=(i*20)+15;

   seriesData.add(series1);
   seriesData.add(series2);
   seriesData.add(series3);
        returnseriesData;
}
<p>
J2ME在手机游戏开发的作用也是无用质疑的。至于桌面程序,可能有人说java不行,界面不好看,但是请看看NetBeans和Eclipse吧,他们都是利用java开发的,而他们的界面是多么的华丽,所以界面决不是java的缺点。还有一个不得不提的优点就是大多java人员都挂在嘴边的java的跨平台性,目前这确实也是java优点之一。
作者: 小魔女    时间: 2015-1-20 18:09
是一种使用者不需花费很多时间学习的语言
作者: 柔情似水    时间: 2015-1-29 13:55
是一种将安全性(Security)列为第一优先考虑的语言
作者: 飘灵儿    时间: 2015-2-5 04:46
是一种突破用户端机器环境和CPU
作者: 愤怒的大鸟    时间: 2015-2-7 20:29
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 莫相离    时间: 2015-2-23 09:54
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 只想知道    时间: 2015-3-7 07:06
是一种语言,用以产生「小应用程序(Applet(s))
作者: 爱飞    时间: 2015-3-13 09:07
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 精灵巫婆    时间: 2015-3-14 14:03
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 山那边是海    时间: 2015-3-21 09:05
Java 编程语言的风格十分接近C、C++语言。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2