第一步:设置数据源
第二步:生成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);//设置可见
}
}
闽公网安备 35060202000074号