我写的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;
}
}
* 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;
}
}
<%@ 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>
-------------------------------------------
我以前也遇到了这个问题.那次是和hp合作的一个项目.hp的项目经理几乎找遍了hp的牛人才解决的.很简单把win2000下的字符集拷贝到jdk下就好了.
祝好运!