【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);//设置可见 } }