JFreeChart 中文乱码

87牛哥 发布于 2010/09/29 12:54
阅读 4K+
收藏 2

我做的一个多饼图,每个饼下的乱码怎么处理,求高人指点

加载中
0
G.
G.

图片还是HTML/XML等代码?

图片的话,要字体支持, 代码的话, 要注意字符集问题.

0
红薯
红薯
import java.awt.Font;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class Test3 {
 public Test3() {
 }

 public static void main(String[] args) {
  DefaultPieDataset dpd = new DefaultPieDataset();
  dpd.setValue("管理人员", 25);
  dpd.setValue("市场人员", 25);
  dpd.setValue("开发人员", 45);
  dpd.setValue("其他人员", 5);

  // Create JFreeChart object
  // 参数可以查看源码

  JFreeChart chart = ChartFactory.createPieChart("公司组织架构图", dpd, true,
    true, false);
  Font font = new Font("SimSun", 10, 20);
  TextTitle txtTitle = null;
  txtTitle = chart.getTitle();
  txtTitle.setFont(font);
  PiePlot pieplot = (PiePlot)chart.getPlot();
        pieplot.setLabelFont(font);  
  chart.getLegend().setItemFont(font);
  ChartFrame pieFrame = new ChartFrame("公司组织架构图", chart);
  pieFrame.pack();
  pieFrame.setFont(font);
  pieFrame.setVisible(true);
 }
} 
0
HostSugar
HostSugar

好像和 版本有点关系吧, @红薯 用的JFreeChart 是什么版本的?

0
红薯
红薯

引用来自#4楼“suan2046”的帖子

好像和 版本有点关系吧, @红薯 用的JFreeChart 是什么版本的?

N年没用jfreechart了。

0
87牛哥
87牛哥

引用来自#3楼“红薯”的帖子

import java.awt.Font;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class Test3 {
 public Test3() {
 }

 public static void main(String[] args) {
  DefaultPieDataset dpd = new DefaultPieDataset();
  dpd.setValue("管理人员", 25);
  dpd.setValue("市场人员", 25);
  dpd.setValue("开发人员", 45);
  dpd.setValue("其他人员", 5);

  // Create JFreeChart object
  // 参数可以查看源码

  JFreeChart chart = ChartFactory.createPieChart("公司组织架构图", dpd, true,
    true, false);
  Font font = new Font("SimSun", 10, 20);
  TextTitle txtTitle = null;
  txtTitle = chart.getTitle();
  txtTitle.setFont(font);
  PiePlot pieplot = (PiePlot)chart.getPlot();
        pieplot.setLabelFont(font);  
  chart.getLegend().setItemFont(font);
  ChartFrame pieFrame = new ChartFrame("公司组织架构图", chart);
  pieFrame.pack();
  pieFrame.setFont(font);
  pieFrame.setVisible(true);
 }
} 

 不好意思,你说这个我知道的,那是对一个饼的操作,我是用CategoryDataset构造的MultiplePieChart

0
红薯
红薯

关键的问题在字体的设置:

Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null; 
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)chart.getPlot(); pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);
0
87牛哥
87牛哥

引用来自#7楼“红薯”的帖子

关键的问题在字体的设置:

Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null; 
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)chart.getPlot(); pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);

 我QQ329620302给你们看图片就知道怎么回事了

0
红薯
红薯

引用来自#8楼“牛海朋”的帖子

引用来自#7楼“红薯”的帖子

关键的问题在字体的设置:

Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null; 
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)chart.getPlot(); pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);

 我QQ329620302给你们看图片就知道怎么回事了

图片可以直接贴出来啊

0
87牛哥
87牛哥

引用来自#9楼“红薯”的帖子

引用来自#8楼“牛海朋”的帖子

引用来自#7楼“红薯”的帖子

关键的问题在字体的设置:

Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null; 
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)chart.getPlot(); pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);

 我QQ329620302给你们看图片就知道怎么回事了

图片可以直接贴出来啊

 看见了吗,2006后面其实是“年”,但显示乱码

0
xu81.com
xu81.com

饿  JFreeChart的好像1.0.10的版本是对中文支持最好的,1.0.12的就算设置的字体貌似中文还是会乱码~

但是1.0.13没测试就不清楚了

推荐用openflashchart吧,那个效果比jfreechart好,而且是无关后台的

返回顶部
顶部