技术开发 频道

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

  【IT168技术文档】

  第一步:设置数据源

  第二步:生成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);//设置可见   }   }

 

0
相关文章