我用是1.11版本的jar,图形如下:但是就剩下最底下的乱码啦。请问怎么设置成中文,或者隐藏也可以!
我的Java代码如下:package com.gb.business.test.model;import java.awt.Color;
import java.awt.Font;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChart2D {  private static CategoryDataset createDataset()
    {
        String s = "学生人数";
        
        //创建横坐标的显示内容
        String s1 = "北京";
        String s2 = "天津";
        String s3 = "河北";
        String s4 = "安徽";
        String s5 = "辽宁";
        String s6 = "河南";
        String s7 = "山东";
      
        //构造生成图片所需要的数据集合
        DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
        defaultcategorydataset.addValue(2000, s, s1);
        defaultcategorydataset.addValue(600, s, s2);
        defaultcategorydataset.addValue(1200, s, s3);
        defaultcategorydataset.addValue(579, s, s4);
        defaultcategorydataset.addValue(347, s, s5);
        defaultcategorydataset.addValue(468, s, s6);
        defaultcategorydataset.addValue(2000, s, s7);         
        return defaultcategorydataset;
    }
    //创建JFreeChart对象
    private static JFreeChart createChart(CategoryDataset categorydataset)
    {
        JFreeChart jfreechart = ChartFactory.createBarChart("学校生源统计柱状图", "省份", "数量", categorydataset, PlotOrientation.VERTICAL, true, false, false);
        jfreechart.setBackgroundPaint(Color.white);
        
        jfreechart.getTitle().setFont(new Font("黑体", Font.BOLD, 20));  
        CategoryPlot plot = jfreechart.getCategoryPlot();
        plot.setBackgroundPaint(Color.white);
        plot.setDomainGridlinePaint(Color.white);
        plot.setDomainGridlinesVisible(true);
        plot.setRangeGridlinePaint(Color.blue);
        
CategoryAxis domainAxis = plot.getDomainAxis(); 
      //获取纵坐标 
      NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis(); 
      //将纵坐标间距设置为100 
      numberaxis.setTickUnit(new NumberTickUnit(50)); 
      numberaxis.setLabelFont(new Font("SimSun",Font.PLAIN,13)); 
      numberaxis.setTickLabelFont(new Font("SimSun",Font.PLAIN,12)); 
      //设置横坐标的标题字体和大小 
      domainAxis.setLabelFont(new Font("SimSun",Font.PLAIN,13)); 
      //设置横坐标的坐标值的字体 
      domainAxis.setTickLabelFont(new Font("SimSun",Font.PLAIN,12)); 
      //使横坐标设置生效 
      plot.setDomainAxis(domainAxis); 
      ValueAxis rangeAxis = plot.getRangeAxis(); 
      
     
      
        
      
        
        return jfreechart;
    }  
    //生成二维柱状图的图片,返回图片文件的名称
    public static String generateBarChart( HttpSession session, PrintWriter pw) {
String filename = null; CategoryDataset categoryDataset = createDataset();
JFreeChart chart = createChart(categoryDataset);

ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
try {
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,
session);
} catch (IOException e) {
e.printStackTrace();
}
try {
ChartUtilities.writeImageMap(pw, filename, info, false);
} catch (IOException e) {
e.printStackTrace();
}
pw.flush();
return filename;
}
}
最好谢谢各位啦。

解决方案 »

  1.   

    图在这里,点击请看:http://hiphotos.baidu.com/%B6%FA%B1%DF%B5%C4%D7%D4%D3%C9%CA%AB/mpic/item/d6fddf1d478635a987d6b6b1.jpg谢谢啦
      

  2.   

    把字体设置成你操作系统所支持的字体就OK了类似于这样
    jfreechart.get图例.setFont(new Font("黑体", Font.BOLD, 20));  下面这块应该表示的事一个图例对象吧,因为我看到你的  title 可以设置字体
    那这里也应该是一样的才对啊,没用过 JFreeChart ,所以不知道它这个图例
    对象是什么,只好用 “get图例” 表示,应该有类似于 getTitle 这样的方法
    你自己查查吧