大家好,因为项目需要我们引入了JFreeChart,使用了它的生产图形到文件的功能。
首先我用main方法做了个测试,代码如下,我的目的是生产一个柱状图,要求它的背景是透明的
                  CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D("", // 图表标题
"", // 目录轴的显示标签
"", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
chart.setBackgroundPaint(null);

FileOutputStream fos_png = null;
try {
fos_png = new FileOutputStream("D:\\test.png");
ChartUtilities.writeChartAsPNG(fos_png, chart, 100, 75, null);
} finally {
try {
fos_png.close();
} catch (Exception e) {
}
}
        /**
 * 获取一个演示用的组合数据集对象
 * @return
 */
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(150, "上海", "苹果");
dataset.addValue(270, "广州", "苹果");
return dataset;
}其实跟设置背景颜色主要相关的是这句:
chart.setBackgroundPaint(null);
它的文档里注明了可以接受null参数,而且我这个main方法执行后,生成的图像也的确是北京透明的但是我把它引入工程后就出错了,我的工程师ssh框架,我把上面的一段代码原封不动的引入到一个service impl里,但是生成的图像背景色却是黑色的!所以我感到很奇怪,不知道是啥原因,哪位大哥遇到过烦请指导一下,50分敬上