已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
YHCIP技术培训 研发中心:林隆永 培训内容 vJfreechart图表开发 vJava集合框架 v工程发布 图表开发 Jfreechart简介 v开源的JAVA项目 /jfreechart/ v 作用 制作各种各样的图表。如饼图、柱状图(普通柱状图以及堆栈柱 状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等 v使用环境 Servlet、JSP、Applet、Java Appication 目标 v对Jfreechart的图表开发有一定的认识 v大概了解Jfreechart的类结构 v掌握YHCIP图表的开发过程 图表组成 标题 副标题 图表区(render) Y轴 (rangeAxis) X轴 (domainAxis) 图示图片区(plot) 核心类 JFreeChart 图表对象,JFreeChart引擎本身提供了一个工厂类用于创建不同类 型的图表对象。任何类型的图表的最终表现形式都是在该对 象进行 一些属性的定制。 XXXXXDataset 数据集对象,用于提供显示图表所用的数据。根据不同类型的图表 对应 着很多类型的数据集对象类 XXXXXPlot图表区域对象,基本上这个对象决定着什么样式的图表,创建该对 象的时候需要Axis、Renderer以及数据集对象的支持。图的功能就是 绘制数据项和轴线 。这些一般由渲染器代理工作,你可以通过 getRenderer()方法获得渲染器。渲染器包括了大多数图形里面数据 项的外观表现属性。 XXXXXAxis用于处理图表的两个轴:纵轴 和横轴 XXXXXRenderer负责 如何显示一个图表对象(柱,线。) XXXXXURLGenerator用于生成Web图表中每个项目的鼠标点击链 接 XXXXXToolTipGenerator用于生成图象的帮助提示,不同类型图表对应 不同类型的工具提示 类 图表开发三步骤 v准备数据源 v创建JfreeChart类对象(图片对象) v显示图片 数据源 二维数据 CATEGORYVALUE London54.3 NewYork43.4 Paris17.9 数据源 CATEGORYSERIES1SERIES2SERIES3 London54.332.153.4 New York43.454.375.2 Paris17.934.837.1 三维数据 数据源 图表类 型 数据格式 饼图 PieDataset(DefaultPieDataset) 柱状图 CatagoryDataset(DefaultCategoryDataset) 时间序列图 XYDataset (TimeSeriesCollection) 折线图 CatagoryDataset(DefaultCategoryDataset)、 XYDataset(XYSeriesCollection) 创建图片对象 v 由ChartFactory工厂类创建各种图表对象 例子:JFreeChart chart = ChartFactory.createBarChart( “Bar Chart Demo”, / 图标标题 “Category”, / x轴名称 “Value”, / y轴名称 dataset, / 数据源 PlotOrientation.VERTICAL,/摆放方向(垂直 ) true, / 是否显示图示 true, / 是否显示提示(鼠标移过提示) false / 是否提供链接 ); 属性设置 vchart对象属性设置 整个图片属性设置,比如图片背景,边框,标题,子标题等。 vPlot对象属性设置(看代码示例BarExample.java) 图片的图表部分属性设置 X轴对象设置 Y轴对象设置 图表渲染器(renderer) 鼠标移过提示(tooltips ) 链接 YHCIP图表开发 v三个步骤 准备数据源 例子:在sqlmap中写查询sql,每条记录的结果为HashMap 。 select b.aaa103 as aaa103, count(a.aab020) as aab020 from ab01 a,bm_aab020 b where a.aab020 = b.aab020 group by a.aab020,b.aaa103 YHCIP图表开发 v创建图表对象 OutputDTO outputDTO = ab01Bpo.getPieList(cForm.getInputDTO(us); List list = outputDTO.getDefaultList(); JFreeChart chart = YHChart.createPie3D( “单位类型比例“, list, “aaa103“,“aab020“); /DefaultPieDataset ds = DataSetUtil.toPie(list,“aaa103“,“aab020“) /JFreeChart chart = YHChart.createPie3D(“单位类型比例“, ds); request.getSession().setAttribute(“chart“,chart); YHCIP图表开发 v显示图片 注意: yhchartimgMap中的name属性值必须和usemap属性值一样。 同一个页面如果有多个图表,名称不能相同。 总结 v Jfreechart开发步骤 v 常用类介绍 图类型datasetplotrenderer 饼图PieDataset(DefaultPieDataset)PiePlot- 柱状图CatagoryDataset( DefaultCategoryDataset) CategoryPlotBarRenderer 折线图CatagoryDataset( DefaultCategoryDataset)、XYDataset (XYSeriesCollection) CategoryPlot 、XYPlot LineAndShapeRenderer、 XYLineAndShapeRenderer 时间 序 列图 XYDataset (TimeSeriesCollection)XYPlotXYLineAndShapeRenderer 数组 Collection List Set Map 容器类图 数组和其它容器的区别 l效率 数组是一种效率很高的存储和随机访问对象引用序列的方式 一个简单的线性序列 大小就固定 l类型 数组可可以保存基本类型,容器不行 l保存基本类型的能力 一个数组对象只能保存一种类型的对象 数组和其它容器的区别 l效率 数组是一种效率很高的存储和随机访问对象引用序列的方式 一个简单的线性序列 大小就固定 l类型 数组可可以保存基本类型,容器不行 l保存基本类型的能力 一个数组对象只能保存一种类型的对象 Collection l作用: 表示一组对象 l类型: 有序 无序 允许重复 禁止重复 l实现 Collection List LinkedList (链表) ArrayList (顺序结构动态数组类) Vector (向量) Stack (堆栈) Set List接口 l作用: List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置 。 l特点: 有序 允许有相同元素 l介绍 用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List 中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相 同的元素。除了具有Collection接口必备的iterator()方法外,List还提 供一个listIterator()方法,返回一个ListIterator接口,和标准的 Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加, 删除,设定元素,还能向前或向后遍历。 实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。 List实现 lArrayList 实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同 步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊 的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数 组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有 定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加 ArrayList的容量以提高插入效率。 和LinkedList一样,ArrayList也是非同步的(unsynchronized)。 List实现 lLinkedList类 LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的 get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList 可被用作堆栈(stack),队列(queue)或双向队列(deque)。 注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须 自己实现访问同步。一种解决方法是在创建List时构造一个同步的List: List list = Collections.synchronizedList(new LinkedList(.); List实现 lVector类 Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator ,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当 一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如, 添加或删除了一些元素),这时调用Iterator的方法时将抛出 ConcurrentModificationException,因此必须捕获该异常。 List实现 lStack 类 Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方 法使得Vector得以被当作堆栈使用。基本的push和pop方法,push()方法是把元 素放在栈顶,pop()方法是把栈顶元素删除以后,在返回删除以后的新的栈顶元 素。还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法 检测一个元素在堆栈中的位置。Stack刚创建后是空栈。 Set接口 l作用 Set是一种不包含重复的元素的Collection(即任意的两个元素e1和e2 都有e1.equals(e2)=false,Set最多有一个null元素),Set接口不保证维护元 素的次序。 Set接口 lHashSet类 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。采用 散列函数对元素进行排序,这是专门为快速查询而设计的 lTreeSet类: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。采 用红黑树的数据结构进行排序元素; lLinkedHashSet类: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。 于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。 内部使用散列 以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的 顺序保存的 Map接口 l Map提供key到value的映射。一个Map中不能包含相同的key,每 个key只能映射一个value l Map接口提供3种集合的视图 1. key集合, 2. 一组value集合, 3. 或者一组key-value映射。 Map实现 l HashMap类 HashMap和Hashtable类似,不同之处在于HashMap是非同步的, 并且允许null,即null value和null key。,但是将HashMap视 为Collection时(values()方法可返回Collection),其迭代 子操作时间开销和HashMap的容量成比例。因此,如果迭代操作 的性能相当重要的话,不要将HashMap的初始化容量设得过高, 或者load factor过低。 Map实现 l Hashtable类 HashMap和Hashtable类似,不同之处在于Hashtable 是同步的 容器类总结 如果涉及到堆栈,队列等操作,应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 筛运焦工保密意识知识考核试卷含答案
- 液化石油气库站运行工岗前工作效率考核试卷含答案
- 横机工岗前规章考核试卷含答案
- 电器附件装配工安全文明模拟考核试卷含答案
- 收获机械制造工班组考核水平考核试卷含答案
- 公司电焊机装配工工艺技术规程
- 承德市重点中学2026届数学高二第一学期期末考试模拟试题含解析
- 川师大现代教育技术教案
- 2025年保洁领班年终总结(收集2篇)
- 2025年技术年度总结(2篇)
- 沪教版(2024)小学英语三年级上册 Unit7《What do we know about weather》教学设计
- 口腔开口训练方法与应用
- 物业人员岗位空缺增补措施
- 行星大气成分探测-洞察及研究
- 腹外疝补片修补术后护理查房
- 职业规划课件模板图片
- 公共事业管理考试2025年试题及答案精解
- 睑板腺按摩治疗讲课件
- 去息烽集中营活动方案
- 收费站恶劣天气应急处置培训
- 2025至2030中国空间激光通信设备行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论