赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

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

发布时间:2008.02.29 04:53     来源:赛迪网    作者:jiang79

第一步:设置数据源
第二步:生成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);//设置可见
    }
}
         (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 高级:lucene全文检索应用示例及代码简析 (02-28) · 使用Spring更好地处理Struts动作 (02-28)
· J2SE综合--Java 5.0 多线程编程实践 (02-28) · 开发框架--Hibernate中各个包的作用 (02-27)
· 基础:Java/J2EE中文问题终极解决之道 (02-27) · JAVA语言操作数据库方式与设计模式应用 (02-27)
· 进阶:使用浮点数和小数中的技巧和陷阱 (02-27) · JDK核心API:Java1.5语言新特性简单总结 (02-27)
· Java GUI--在Java中监控文本框的变化 (02-27) · Java 安全--简单谈谈JAVA程序的反编译 (02-27)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统