我写的BarChartBean如下/**
 * Created by IntelliJ IDEA.
 * User: abbel
 * Date: Sep 16, 2003
 * Time: 11:33:59 AM
 * To change this template use Options | File Templates.
 */
package abbel.charttest;import org.jfree.data.DefaultCategoryDataset;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.renderer.BarRenderer;import javax.servlet.http.HttpSession;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.awt.*;public class BarChartBean {
    public static String generateBarChart(HttpSession session, PrintWriter pw) {
        String filename = null;
        try {
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            ArrayList b = new ArrayList();
            for (int i = 0; i < 20; i++) {
                String c = "" + i + "时";
                //c = new String(c.getBytes("8859_1"), "gb2312");
                b.add(i, c);
            }            for (int i = 1; i <= 20; i++) {
                String c=(String) b.get(i-1);
               // String c = "c" + i;
                dataset.addValue(i, null, c);
            }            Font font=new Font("黑体",Font.TRUETYPE_FONT, 12);
            CategoryAxis categoryAxis = new CategoryAxis("小时");
            categoryAxis.setLabelFont(font);
            ValueAxis valueAxis = new NumberAxis("收入");
            valueAxis.setLabelFont(font);            BarRenderer renderer = new BarRenderer();
            renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            Plot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer);
            String title = "你好啊";            JFreeChart chart = new JFreeChart(title, font, plot, false);
            chart.setBackgroundPaint(java.awt.Color.white);
            ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());            filename = ServletUtilities.saveChartAsPNG(chart, 640, 480, info, session);            ChartUtilities.writeImageMap(pw, filename, info);
            pw.flush();
        } catch (Exception e) {        }        //JFreeChart chart=ChartFactory.createBarChart(title,)
        return filename;
    }
    public static void main(java.lang.String[] args) {
        try {
            //SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.UK);
            PrintWriter pw = new PrintWriter(System.out);
            String filename = BarChartBean.generateBarChart(null, pw);
// String filename = WebHitChart.generatePieChart(sdf.parse("01-Aug-2002"), null, pw);
// String filename = WebHitChart.generateXYChart("service", null, pw);
            System.out.println("filename - " + filename);
            ArrayList b = new ArrayList();
            for (int i = 0; i < 20; i++) {
                int j=i+1;
                String c = "" + j + "时";
               c = new String(c.getBytes("8859_1"), "gb2312");
                b.add(i, c);
            }
            for(int i=0;i<20;i++){
                System.out.println(b.get(i));
            }
            System.out.println(b.size());
        } catch (Exception e) {
            System.out.println("Exception - " + e.toString());
            e.printStackTrace();
        }
        return;
    }
}

解决方案 »

  1.   

    我写的jsp如下:<%@ page import = "abbel.charttest.BarChartBean" %>
    <%@ page import = "java.io.PrintWriter" %>
    <%@ page import = "java.text.SimpleDateFormat" %>
    <%@ page import = "java.text.ParseException" %>
    <%@ page import = "java.util.ArrayList" %>
    <%@ page import = "java.util.Date" %>
    <%@ page import = "java.util.Iterator" %>
    <%@ page import = "java.util.Locale" %>
    <%

    String filename = BarChartBean.generateBarChart(session,new PrintWriter(out));
    String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

    %>
    <html>
    <head>
    <link rel="stylesheet" href="sample.css" type="text/css"/>
    <title>Bar Chart Example</title>
    </head>
    <body>
    <img src="images/top_bar.png" width=1004 height=75 border=0>
    <table border=0>
    <tr>
    <td width=170><img src="images/spacer.png" width=170 height=1></td>
    <td>
    <h2>Bar Chart Example</h2>
    <img src="<%= graphURL %>" width=640 height=480 border=0 usemap="#<%= filename %>"> <p>The chart shown above has tooltips and drilldown enabled.</p>
    </td></tr>

    </td>
    </tr>
    </table>
    </body>
    </html>
      

  2.   

    以下内容出自,blue999star(星星要挣钱,养老婆) 
    -------------------------------------------
    我以前也遇到了这个问题.那次是和hp合作的一个项目.hp的项目经理几乎找遍了hp的牛人才解决的.很简单把win2000下的字符集拷贝到jdk下就好了.
      祝好运!