刚刚没发好,重发一次~这是我画柱状图的示例,请问为什么第一个可以,第二个不行?谢谢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("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
} private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, null, "苹果");
dataset.addValue(200, null, "梨子");
return dataset;以上示例正确,可以生成柱状图
---------------------------------------------------
下面这个示例无法生成柱状图,提示报空指针  位置在ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);行,我觉得应该是chart有错,但我不知道错在哪?该如何改
public class MAP4Action extends Action {        static final private String FORWARD_done = "done";        public ActionForward execute(ActionMapping mapping, ActionForm form,
                                     HttpServletRequest request, HttpServletResponse response)
                throws Exception
        {
            HttpSession session = request.getSession();            Connection conn3 = DBControl.getInstance("tempdb");
            Statement stmt3 = conn3.createStatement();
            String strSQL="select * from tempdb..wl"+session.getAttribute("mainname")+" order by showid";
            ResultSet  rs = stmt3.executeQuery(strSQL);            double yhye;
            DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
            if (rs!=null && rs.next()){
                do
                {
                        Double yhye_map = new Double(ChangeJe.change(Encode.iso2GBK(rs.getString("yhye")),"元"));
                        yhye=yhye_map.doubleValue();
                        dataset1.addValue(yhye,null,Encode.iso2GBK(rs.getString("dw")));
                }while(rs.next());
            }            CategoryDataset dataset = dataset1;
            JFreeChart chart = ChartFactory.createBarChart3D(
"查询比较结果", // 图表标题
"单位", // 目录轴的显示标签
"RMB", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true,  // 是否显示图例(对于简单的柱状图必须是false)
false,  // 是否生成工具
false  // 是否生成URL链接
);                FileOutputStream fos_jpg = null;
                try
                {
                    fos_jpg = new FileOutputStream("c:\\resin\\webapps\\bank\\jsp\\gif\\datapic\\map4_"+session.getAttribute("mainname")+".jpg");
                    ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,400,300,null);
                }
                finally
                {
                try
                {
                    fos_jpg.close();
                }
                catch (Exception e) {}
                }            ActionForward af = new ActionForward();
            af.setPath("/jsp/gif/datapic/map4_"+session.getAttribute("mainname")+".jpg");
            return af;
        }
}