我在网上下载了一段用jfreechart生成柱状图的代码 
代码执行完后,生成了product.jpg 
我直接双击这张图片时,这张图片显示结果不是很正常,暗暗的,不清晰。 然后我在jsp文件里,写了下面这段代码: 
<img src="********product.jpg">  (*是一些路径,在这里我省略了) 然后启动tomcat,但是这张图片老是显示不出来,只显示了一个叉叉。我可以保证我写的路径是绝对正确的。 为了验证我做了一下的测试: 
我在放product.jpg图片的目录下放了一张我自己在下载的平常的jpg图片,叫1.jpg 
此时我在jsp文件里写了 
<img src="********1.jpg"> 此时则可以正常的显示1.jpg 我想问的是: 
问题是不是一定出在代码上,除此之外还有其他的原因吗? 
为什么自己下载的jpg可以显示,而用代码生成的jpg则显示不了,而且当我直接双击product.jpg(用代码生成的)时 
也是可以显示的,只是有些暗暗的,不是很清晰而已,照理我在jsp文件里应该可以把它显示出来才是啊,请高手帮帮忙 
一下是我生成图片的代码: 
public class TestJFreeChart 

public static void main(String[] args) throws IOException 

CategoryDataset dataset = getDataSet2(); 
JFreeChart chart = ChartFactory.createBarChart3D( 
"水果产量图", // 图表标题 
"水果", // 目录轴的显示标签 
"产量", // 数值轴的显示标签 
dataset, // 数据集 
PlotOrientation.VERTICAL, // 图表方向:水平、垂直 
true, // 是否显示图例(对于简单的柱状图必须是false) 
false, // 是否生成工具 
false // 是否生成URL链接 
); FileOutputStream fos_jpg = null; 
try 

  fos_jpg = new FileOutputStream("F:\\product.jpg");   ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f, chart, 800, 500, null); 

finally 

try 

fos_jpg.close(); 

catch (Exception e) 



} /** 
* 获取一个演示用的组合数据集对象 

* @return 
*/ 
private static CategoryDataset getDataSet2() 

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
dataset.addValue(100, "北京", "苹果"); 
dataset.addValue(100, "上海", "苹果"); 
dataset.addValue(100, "广州", "苹果"); 
dataset.addValue(200, "北京", "梨子"); 
dataset.addValue(200, "上海", "梨子"); 
dataset.addValue(200, "广州", "梨子"); 
dataset.addValue(300, "北京", "葡萄"); 
dataset.addValue(300, "上海", "葡萄"); 
dataset.addValue(300, "广州", "葡萄"); 
dataset.addValue(400, "北京", "香蕉"); 
dataset.addValue(400, "上海", "香蕉"); 
dataset.addValue(400, "广州", "香蕉"); 
dataset.addValue(500, "北京", "荔枝"); 
dataset.addValue(500, "上海", "荔枝"); 
dataset.addValue(500, "广州", "荔枝"); 
return dataset; 

}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【linsongbin1】截止到2008-06-22 21:00:34的历史汇总数据(不包括此帖):
    发帖数:16                 发帖分:450                
    结贴数:15                 结贴分:410                
    结贴率:93.75 %            结分率:91.11 %            
    值得尊敬
      

  2.   

    是你方法使用的问题,流有问题, 
    ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f, chart, 800, 500, null);  
    这个改为 
    ChartUtilities.writeChartAsPNG(fos_jpg,chart,800,500); 就好了 
      

  3.   

    2楼的解决方法也不行,使用jsp还是无法显示product.jsp,仍然是一个叉。
      

  4.   

    问题终于解决了,我查看了jfreechart的文档,对于JFreeChart类型的对象来说, 
    jpeg是一种弱的格式,必须该用png格式的。也就是说以png的格式把一个JFreeChart对象写到FileOutputStream中 
    这样就可以正常的显示,而且图片也特别的清晰。 终于搞定了。