您所在的位置: 首页>>数据库>>Oracle>>

使用JFreeChart显示您的Oracle数据库数据(10)

http://database.51cto.com  2007-10-10 13:14  Dustin Marx/Michael G. Martin  Oracle  我要评论(0)
  • 摘要:本文讲解如何使用JFreeChart轻松绘制Oracle数据库数据图表,并可以选择多种高质量的图表类型。在本文中,我们将使用Oracle数据库10g快捷版(XE)中的HR模式数据提供一个该过程的示例。
  • 标签:Oracle  数据库  数据  JFreeChart

示例 8:自定义小图

虽然该 servlet 示例显示了某些图表创建的自定义,但是本文前面的大多数示例都直接使用了 JFreeChart 生成的图表,而没有进行任何自定义。利用 JFreeChart,开发人员可以自定义图表,但是这会增加复杂性。该示例显示的是一些相当简单的自定义,但是也可以进行功能强大得多也复杂得多的自定义。事实上,只要您愿意编写足够多的代码,自定义几乎是没有限制的。

在该示例中,生成的直线图将具有一个透明的背景(透明性支持是 PNG 格式的众多优势中的一个),并将其系列绘图颜色由默认的红色改为蓝色。直线图或许不是显示 HR 模式中每个 Oracle 数据库对象类型的数量的最佳图表类型,但是使用直线图为我们提供了一个演示 JFreeChart 的三维直线图功能的机会。

下面显示了三个图像。第一个(图 12)是使用 Oracle 数据库快捷版附带的基于 Web 的管理工具的屏幕截图,它按对象类型显示了 HR 模式中的模式对象的数量。下一个图像(图 13)显示 JFreeChart 使用默认的颜色(灰色背景和红色绘图色)未进行任何自定义现成生成的直线图,第三个图像(图 14)显示基于相同数据的自定义 JFreeChart 图表。这两个 JFreeChart 生成的图像都显示了各自在浏览器中显示的图表,背景颜色故意设置为较暗的阴影以使自定义图表的背景更明显。

图 14 中显示的图表具有一个透明的背景,这在该图与图 13 比较时最容易看到。但是,只有图表的外部是透明的。具有实际图形的绘图部分称为绘图区,在两种情况下都是白色的。可以使用与更改整体图表的背景相同的方式来更改绘图区的背景颜色。按照在与在图表自身上调用 setBackgroundPaint 方法相同的方式在绘图区上调用 setBackgroundPaint 方法,就生成了图 14。

图12:Oracle 数据库快捷版Web工具对HR数据库对象的显示
图13:显示HR模式中每个对象的数量的直线图

图14:与图13中显示的是同一个图表,但是具有透明的背景颜色和蓝色轮廓颜色

下一个代码清单显示生成自定义的三维直线图的代码。

清单 13: 生成具有背景透明性的 PNG 文件

   /**
* Write .png file with transparent background based on provided JFreeChart.
    * 
* @param aChart JFreeChart.
* @param aFileName Name of file to which JFreeChart will write chart.    
* @param aWidth Width of image.
* @param aHeight Height of image.
    */
public void writePngTransparentBasedOnChart( JFreeChart aChart,
String aFileName,
int aWidth,
int aHeight )
   {
final String fileExtension = ".png";
try
      {
aChart.setBackgroundPaint( new Color(255,255,255,0) );
         
CategoryItemRenderer renderer = aChart.getCategoryPlot().getRenderer();
renderer.setSeriesPaint(0, Color.blue.brighter());
renderer.setSeriesVisible(0, true); // default
renderer.setSeriesVisibleInLegend(0, true);  // default

ChartUtilities.writeChartAsPNG(
new FileOutputStream(aFileName + fileExtension),
aChart,
aWidth, aHeight,
null,
true,    // encodeAlpha
                             0 );
      }
catch (IOException ioEx)
      {
System.err.println( "Error writing PNG file "
+ aFileName + fileExtension);
      }
   }


共13页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 10 [11] [12] [13] 下一页
【内容导航】
 第 1 页:JFreeChart 简介  第 2 页:下载并“安装”JFreeChart
 第 3 页:示例1:使用饼形图直接绘制 HR 模式数据图表  第 4 页:示例2:使用三维饼形图间接绘制HR模式数据图表
 第 5 页:示例3:在Swing中生成条形图  第 6 页:示例4:在Java Servlet中生成图表
 第 7 页:示例5:使用Cewolf在JSP中生成图表  第 8 页:示例6:使用Apache Batik在SVG中生成图表
 第 9 页:示例7:使用iText在PDF中显示图表  第 10 页:示例8:自定义小图
 第 11 页:示例9:使用XML为JFreeChart提供输入数据  第 12 页:示例9的清单程序
 第 13 页:其他JFreeChart特性
重复数据删除技术
Sun以10亿美元并购开源数据库厂商MySQL
甲骨文Oracle 11g正式发布
Oracle数据库开发之PL/SQL基础应用
Oracle较真SAP-商业管理软件之战一触即发
 
 验证码: (点击刷新验证码)   匿名发表
  • 野蛮生长

  • 作者:冯仑著
  • “地产界的思想家”冯仑纵横生意江湖20年来,第一次系统梳理出书。  三十年来中国民营企业从前公司时代发展到公司时代,21..
Copyright©2005-2008 51CTO.COM 版权所有