JfreeChart整合struts2

1.开发JfreeChart需要Jcommon,而这两个文件下载下来后是没有javadoc文档的,需要ant工具来执行压缩包中ant目录下的文件。

首先下载ant,然后安装。

To get up and running with the binary edition of Ant quickly, follow these steps:

  1. 1.Make sure you have a Java environment installed, See System Requirements for details.
  2. 2.Download Ant. See Binary Edition for details.
  3. 3.Uncompress the downloaded file into a directory.
  4. 4.Set environmental variables JAVA_HOME to your Java environment, ANT_HOME to the directory you uncompressed Ant to, and add ${ANT_HOME}/bin (Unix) or %ANT_HOME%/bin (Windows) to your PATH. See Setup for details.
  5. 5.Optionally, from the ANT_HOME directory run ant -f fetch.xml -Ddest=system to get the library dependencies of most of the Ant tasks that require them. If you don't do this, many of the dependent Ant tasks will not be available. See Optional Tasks for details and other options for the -Ddest parameter.
  6. 6.Optionally, add any desired Antlibs. See Ant Libraries for a list.

安装好ant后,用命令提示符到jfreechart-1.0.13/ant目录,输入“ant javadoc”,ant就会自动执行操作将javadoc添加到jfreechart-1.0.13目录中,jcommon也是同样操作。

2.struts整合jfreechart。

package myapp.actions;

import org.apache.commons.lang.xwork.math.RandomUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import com.opensymphony.xwork2.ActionSupport;

public class ViewModerationChartAction extends ActionSupport {

    private JFreeChart chart;

    public String execute() throws Exception {
        // chart creation logic...
        XYSeries dataSeries = new XYSeries(new Integer(1)); //pass a key for this serie
        for (int i = 0; i <= 100; i++) {
            dataSeries.add(i, RandomUtils.nextInt());
        }
        XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);

        ValueAxis xAxis = new NumberAxis("Raw Marks");
        ValueAxis yAxis = new NumberAxis("Moderated Marks");

        // set my chart variable
        chart =
            new JFreeChart(
                "Moderation Function",
                JFreeChart.DEFAULT_TITLE_FONT,
                new XYPlot(
                    xyDataset,
                    xAxis,
                    yAxis,
                    new StandardXYItemRenderer(StandardXYItemRenderer.LINES)),
                false);
        chart.setBackgroundPaint(java.awt.Color.white);

        return super.SUCCESS;
    }

    public JFreeChart getChart() {
        return chart;
    }

}

struts.xml文件配置:


    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    ">




 
    400
    300
 


引入jar包jfreechart-1.0.13.jar、jcommon-1.0.13.jar、struts2-jfreechart-plugin-2.2.1.jar。

在tomcat中部署,输入地址

http://localhost:8080/TestJfreeChart/viewModerationChart.action,显示结果如下

image

整合中文乱码问题

package com.test.jfreechart;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class JFreeChartTest {
    public static void main(String[] args) {
        DefaultPieDataset dpd = new DefaultPieDataset();

        dpd.setValue("管理人员", 25);
        dpd.setValue("市场人员", 25);
        dpd.setValue("开发人员", 45);
        dpd.setValue("其他人员", 10);

        JFreeChart chart = ChartFactory.createPieChart3D("某公司人员组织结构图", dpd,
                true, true, false); // 图表标题 、数据 、是否显示图例 、是否显示工具提示 、是否生成URL
        chart.setTitle(new TextTitle("某公司人员组织结构图-3D", new Font("黑体",
                Font.ITALIC, 22))); // 重新设置图表标题,改变字体。如图:

SNAGHTML1bf2174

        LegendTitle legend = chart.getLegend(0); // 取得统计图表的第一个图例

        legend.setItemFont(new Font("宋体", Font.BOLD, 14)); // 修改图例的字体,如图

SNAGHTML1bfd39d
        Font font = new Font("宋体", 10, 20);
        PiePlot plot = (PiePlot) chart.getPlot(); // 获得饼图的Plot对象

        plot.setLabelFont(new Font("隶属", Font.BOLD, 18)); // 设置饼图各部分的标签字体,如图

SNAGHTML1c06241

        plot.setBackgroundAlpha(0.9f); // 设置透明度(0-1.0之间)

        ChartFrame chartFrame = new ChartFrame("某公司人员组织结构图", chart);

        chartFrame.pack();

        chartFrame.setVisible(true);

    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值