构件技术专栏
上一期我们介绍了构件技术的基础知识和ILOG公司产品JViews的简单介绍,这一期我们来深入了解JViews的技术,并通过一两个例子来阐述我们如何利用先进的构件简单快速的开发出高性能、专业级的动态交互图形界面。
这一期主要内容:JViews的Diagrammer和Charts;下一期我们将介绍JViews的Maps和Gantt。通过本期和下期的介绍,读者应该能熟悉地利用JViews构件轻松地进行开发应用,能够很快的构造出各种各样的图形界面来,在应用程序、WEB客户端自由使用。
第二期 JViews 技术介绍:Charts和 Diagrammer
JViews Charts介绍
上一期简单介绍中讲到,JViews Charts可以显示种类繁多的图表格式,包括二维点图(2D point),折线图(line),条形图(bar),堆叠图(stacked),气泡图(bubble),区域图(area),高低点连线图(high/low),柱状图(candle),雷达图(radar),极坐标图(polar)和饼状图(pie)等。Charts实现了类Swing组件模型的视图控制器(MVC)框架,明确的分离了数据与表示。数据模型是完全开放和可扩展的,并能与其它应用组件相连。更新通信机制是自动的,透明的。当数据模型变化时,图表也被更新;当用户改变图表时,数据模型也产生变化。
这部分我们就来深入分析Charts的概念、特征、功能和典型应用:
(一) 基本介绍,介绍JViews Charts的各个特征和它的典型用途。
(二) 基本概念,介绍了JViews Charts中各种要素的基本概念。
(三) 一般框架,展示了一般框架和JViews Charts的主要构件。
(四) 应用开发,介绍设计工具,它是一个GUI应用程序,包括可以被用来不用写代码就建立不同的图形构件,以及使用Java API扩展图表构件的SDK。
(一)基本介绍
这部分将向您介绍Charts的各个特征,并说明该产品的特征和它的典型用途。
什么是Charts:
图表(Charts)使用不同的形式(标记,线段,条形等等)用图形化的方式展现数据,用刻度来表示被展现数据的值。
Charts使用图表展示数据,并可以自己定义各种方式,以及在图表中加入各种交互方式。Charts被设计成拥有最优性能和清楚的对象结构,它是处理大量和(或)动态数据模型——比如实时监控系统——的最佳解决方案。
Charts提供广泛的显示类型:
? 标准的笛卡儿图表。数据用笛卡儿坐标系统进行显示,X轴和Y轴分别用水平轴和竖直轴表示,刻度是矩形的,并且成直角。
(笛卡儿图表) (极坐标图表) (雷达图表)
? 极坐标图表用圆形显示数据。数据用极坐标系统进行显示,横坐标的值在圆上显示刻度,纵坐标的值是矩形的,呈放射状排列。
? 雷达图表。雷达图表能够把各个数据相关起来看,并且进行多种类型的比较。在雷达图表中,每个类型的数值都有其自己的坐标轴,从中心点放射出来。同一个系列的数值用线条连接起来。
? 气泡状图,代表了一定离散曲线的表现。
? 高低值图,展现用高低值显示两个数据集,并定义了上升风格(高值比低值大)和下降风格(高值比低值小)。
(气泡状图) (高低值图)
静态和动态图表
图表可以是静态的,就是说当它被显示的时候在外观上是不变化的;也可以是动态的,就是说随着用户的动作或外部数据的变化而变化。
主要特征
Charts具有如下特征:
? 功能完全的API。
? 最优性能以及清楚的对象结构。
? 广泛的显示类型:折线,条形,区域,气泡,高低值,散点,梯形,组合图。
? 方便地定制。
? 数据和其图形显示的明确区分。
? 数据相关的图表。
? 用级联样式表(Css)动态控制显示的外观。
? 和任何支持Swing的Java应用程序整合。
? Java Beans集,可以在你习惯的IDE中使用。
? 在给定的坐标轴上进行坐标变换。变化可以是线性的,也可以是非线性的。
? 按需导入。按需导入机制使你能够在海量的数据集中,通过只把图表连接到需要显示的数据来控制内存的使用。
? 瘦客户端架构。
¡ 基于标准Servlet Java技术的类包。
¡ 内置支持图形创建。
¡ 支持JPEG和PNG格式的图形(通过添加定制编码可以增加其它格式)。
¡ 客户端图形的自动创建。
? 功能完全的打印API。
¡ 基于标准Java 2打印API。
¡ 多页面打印。
¡ 丰富的页面格式(段落排列,本地字体等等)。
¡ 组合文档(图表,表格,文字混合)。
¡ 可扩展的框架。
Charts的典型用途
用Charts来反应数据,以观察它们的值和趋势走向,比如:
? 需要反应数据,以观察数据的值和趋势走向的应用程序。用户可以很多(比如通过搜索引擎显示Nasdaq指数),也可以是一个公司的某些员工。这些应用程序使用普通的图表,任何人不需要练习就可以看懂。这些图表是只读的,通常在网页上公布(瘦客户端),这些应用程序只是偶然使用。
? 要求更严格的应用程序,它是专业人员用来完成他们日常工作的。这些图表通常需要实时更新,也就是说,它们和数据流相连接并实时刷新。这些图表由应用程序定制,需要精确的滚动、缩放、指定焦点数据、交互和编辑数据。这样的应用程序在所有的工业中都存在:交易应用,引擎测试(汽车,飞机等)和其它机械测试,网络或应用治理,科学研究。
(二)基本概念
这部分介绍Charts中各种要素的基本概念。
二维和三维
Charts能够把二维的数据模型用三维图表来显示。只有笛卡儿图和饼状图支持三维显示。
数据和视图的清楚区分
Charts基于一个具有MVC模型的Swing变种,称之为可分离模型架构。在这种设计下,模型治理数据或构件代表的数值,而视图治理模型的图形化显示并处理图形上的交互。
图表类型
Charts有四种不同的图表类型:
? 笛卡儿图
? 雷达形图
? 极坐标图
? 饼状图
支持的图形展现
Charts支持八种类型的图形展现:
? 折线
? 条形
? 区域
? 气泡
? 高低值
? 散点
? 梯形
? 组合图
图表区域
图表区域是指所有绘画动作进行的场所(数据本身和装饰的图形显示部分)。
表头和注脚
这些构件是可选的JComponent,对应加入到图表区域的上部或下部。
坐标轴