jCharts用户指南翻译第三章 全部图表

3.全部图表

   3.1输出图片

   编码

  经过编码器对象加载org.krysalis.jcharts.encoders包, jCharts输出下格式:PNG, JPEG, SVG这些编码器的每一个都有一个编码图表的方法:

  编码(Chart chart, OutputStream outputStream) –一个你能经过有这个方法的的任何输出流工具,例如文件输出流,普通的版本。

   PNGJPEG的支持是有 JSDK 1.4提供的。总之,你需要 JSDK 1.4去用 提供的jCharts t图片编码器。然而,现在有一个保留支持旧的JDK'sJPEGEncoder13类。

 SVG的支持是由 the Apache XML工程提供的:Batik。请访问:http://xml.apache.org/batik/

来自一个Servlet的图片

有一个帮助类,org.krysalis.jcharts.encoders.ServletEncoderHelper,另外,来自ServletsJSP的输出表。

在这个能输出jCharts支持格式的任何一个图片的类,有许多的方法,为浏览器增加了自动装入图表MIME类型有助于浏览器知道怎样正确的显示图片。

我不知道关于你的情况,但是我总是能强记不同文件格式的MIME类型。

提示:

一些用户尝试吧一个图表图片输出到磁盘然后通过流传回浏览器。这是没必要的!你可以利用上面提及的帮助类把图片由流输出到浏览器,将避免昂贵的文件输入输出。

备注:

这个帮助类之所以会产生因为可以避免依赖与J2EE jard的编译时间。如果你简单地在the xxxEncoder类上重载代码的方法,编译器会为每一个重载的注册试着加载所有涉及的类。

没有X Server的图片

JSDK 1.4+ 可以允许jCharts运行在一个虚拟存储缓冲区的一个headless*的空间上。在java命令行设置以下指定的属性:-Djava.awt.headless=true或者在你的代码里一个缺少弹性的位置:System.setProperty("java.awt.headless","true");

然而,如果你运行以前的JDK1.4,你不得不用一个虚拟存储缓冲区,如:xvfb

图表在Swing里应用

   你同样在一个Swing应用里面用jcharts。以下的代码来自org.krysalis.jcharts.demo.swing包的 SwingDemo类。这里,你简单地设置Swing组件的图形对象,变成图表和调用render()

 import org.krysalis.jcharts.chartData.ChartDataException;
 
 

import org.krysalis.jcharts.chartData.PieChartDataSet;

import org.krysalis.jcharts.properties.PropertyException;

import org.krysalis.jcharts.properties.PieChart2DProperties;

import org.krysalis.jcharts.properties.ChartProperties;

import org.krysalis.jcharts.properties.LegendProperties;

import org.krysalis.jcharts.nonAxisChart.PieChart2D;

 

import javax.swing.*;

import java.awt.*;

import java.awt.event.WindowEvent;

 

 

public class SwingDemo extends JFrame

{

  private JPanel panel;

 

 

  public SwingDemo() throws ChartDataException, PropertyException

  {

    initComponents();

  }

  private void initComponents() throws ChartDataException,PropertyException

  {

    this.setSize( 500, 500 );

    this.panel = new JPanel( true );

    this.panel.setSize( 500, 500 );

    this.getContentPane().add( this.panel );

    this.pieChart2DProperties = new PieChart2DProperties();

    this.legendProperties= new LegendProperties();

    this.chartProperties= new ChartProperties();

    this.setVisible( true );

    addWindowListener( new java.awt.event.WindowAdapter()

    {

      public void windowClosing( WindowEvent windowEvent )

      {

        exitForm( windowEvent );

      }

    }

    );

  }

 

 

  /************************************************************************

        *

        * @param graphics

        ***********************************************************************/

  public void paint( Graphics graphics )

  {

    try {

      String[] labels = {"BMW", "Audi", "Lexus"};

      String title = "Cars that Own";

      Paint[] paints = {Color.blue, Color.gray, Color.red};

      double[] data = {50d, 30d, 20d};

      PieChartDataSet pieChartDataSet = new PieChartDataSet( title, data,

                               labels, paints, this.pieChart2DProperties );

      Dimension dimension= this.panel.getSize();

      PieChart2D pieChart2D = new PieChart2D( pieChartDataSet,

                                              this.legendProperties,

                                              this.chartProperties,

                                              (int) dimension.getWidth(),

                                              (int) dimension.getHeight() );

 

       //***** BEGIN SWING SPECIFIC CODE *******************************

       pieChart2D.setGraphics2D( (Graphics2D) this.panel.getGraphics() );

       pieChart2D.render();

       //***** END SWING SPECIFIC CODE *********************************

    }

    catch( ChartDataException chartDataException ) {

      chartDataException.printStackTrace();

    }

    catch( PropertyException propertyException ) {

      propertyException.printStackTrace();

    }

  }

 

 

3.2图表标题

   显示一个标题

   你能有一个 DataSeries PieChartDataSet构造方法的一个参数显示你的图表的标题。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值