服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

对使用jfreechart的源代码进行注释说明

第一步:设置数据源
第二步:生成jfreechart图形
第三步:生成装载图形的特殊面板

代码如下:

package test;

import java.awt.*;
import javax.swing.jpanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.numberaxis;
import org.jfree.chart.plot.categoryplot;
import org.jfree.chart.plot.plotorientation;
import org.jfree.chart.renderer.category.barrenderer;
import org.jfree.data.category.categorydataset;
import org.jfree.data.category.defaultcategorydataset;
import org.jfree.ui.applicationframe;
import org.jfree.ui.refineryutilities;

public class test extends applicationframe
{

    public test(string s)
    {
        super(s);
        categorydataset categorydataset = createdataset();
        jfreechart jfreechart = createchart(categorydataset);
        chartpanel chartpanel = new chartpanel(jfreechart);
        chartpanel.setpreferredsize(new dimension(500, 270));
        setcontentpane(chartpanel);
    }

    private static categorydataset createdataset()
    {
        string s = "first";
        string s1 = "second";
        string s2 = "category 1";
        //生成defaultcategorydataset数据源对象
        defaultcategorydataset defaultcategorydataset = new defaultcategorydataset();
        //向该defaultcategorydataset数据源对象添加数据
        defaultcategorydataset.addvalue(1.0d, s, s2);
        defaultcategorydataset.addvalue(5d, s1, s2);
        return defaultcategorydataset;
    }

    private static jfreechart createchart(categorydataset categorydataset)
    {
        jfreechart jfreechart = chartfactory.createbarchart("图形标题", "横坐标", "纵坐标", categorydataset/*数据源*/, plotorientation.vertical/*方向*/, true, true, false);
        jfreechart.setbackgroundpaint(new color(0xbbbbdd));//设置背景色
        categoryplot categoryplot = jfreechart.getcategoryplot();//得到图形以便精细设置
        numberaxis numberaxis = (numberaxis)categoryplot.getrangeaxis();//取得该类图形的范围数字轴,指纵坐标
        numberaxis.setticklabelfont(new font("黑体",font.italic,18));//设置纵坐标的字体,风格,大小

        numberaxis.setstandardtickunits(numberaxis.createintegertickunits());//设置纵坐标以标准整形为单位
        barrenderer barrenderer = (barrenderer)categoryplot.getrenderer();//barrenderer表示得到所有的柱形集合对象
        barrenderer.setdrawbaroutline(false);//不显示柱形的外边框
        barrenderer.setmaximumbarwidth(2d);//设置每个图形的最大宽度
        gradientpaint gradientpaint = new gradientpaint(0.0f, 0.0f, color.red, 0.0f, 0.0f, color.black);//从上到下渐变的颜色
        gradientpaint gradientpaint1 = new gradientpaint(0.0f, 0.0f, color.green, 0.0f, 0.0f, color.red);//从上到下渐变的颜色
        barrenderer.setseriespaint(0, gradientpaint);//第一个柱形
        barrenderer.setseriespaint(1, gradientpaint1);//第二个柱形
        return jfreechart;
    }

    /**
     * 返回一个面板
     * @return jpanel
     */
    public static jpanel createdemopanel()
    {
      //生成jfreechart对象
        jfreechart jfreechart = createchart(createdataset());
        return new chartpanel(jfreechart);
    }

    public static void main(string args[])
    {
        test test = new test("窗体标题");
        test.pack();
        refineryutilities.centerframeonscreen(test);//放在屏幕中间
        test.setvisible(true);//设置可见
    }
}