JFreeChart调试乱码问题,待解决

fengda2870 2008-10-05 07:58:09
从网上下载最新的JFreeChart版本
如图:

进行调试的时候出现乱码
源代码如下:

package test;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class TestJFreeChart {

public static void main(String[] args) {
DefaultPieDataset dpd = new DefaultPieDataset();

dpd.setValue( "管理人员" , 30 );
dpd.setValue( "开发人员" , 50 );
dpd.setValue( "销售人员" , 42 );
dpd.setValue( "策划人员" , 15 );

JFreeChart chart = ChartFactory.createPieChart( "公司人员分布图" , dpd , true , true , true );

ChartFrame cf = new ChartFrame( "某公司人员分布图" , chart );
cf.pack();
cf.setVisible( true );

}

}

运行效果如图:
...全文
224 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
TextTitle txtTitle = null;
txtTitle = jf.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot)jf.getPlot();
pieplot.setLabelFont(font);
jf.getLegend().setItemFont(font);
yuan_2004 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 skydove 的回复:]
中文乱码问题:plot.getDomainAxis().setLabelFont(font); //x轴外围字体
plot.getDomainAxis().setTickLabelFont(font); //x轴刻度字体

plot.getRangeAxis().setLabelFont(font); //y轴外围字体
plot.getRangeAxis().setTickLabelFont(font); //y轴刻度字体
jfreechart.getTitle().setFont(new Font("宋体", Font.CENTER_BASELINE, 20)); //标题字体
jfreechart.getLegend().…
[/Quote]

非常有用。
福&缘 2008-10-28
  • 打赏
  • 举报
回复
中文乱码问题:plot.getDomainAxis().setLabelFont(font); //x轴外围字体
plot.getDomainAxis().setTickLabelFont(font); //x轴刻度字体

plot.getRangeAxis().setLabelFont(font); //y轴外围字体
plot.getRangeAxis().setTickLabelFont(font); //y轴刻度字体
jfreechart.getTitle().setFont(new Font("宋体", Font.CENTER_BASELINE, 20)); //标题字体
jfreechart.getLegend().setItemFont(font); //设置最底下方框内的字体
福&缘 2008-10-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 skydove 的回复:]
用下面这方法就行~~~

Font font20 = new Font("宋体",Font.BOLD,20);
Font font12 = new Font("宋体",Font.BOLD,12);

chart.getTitle().setFont(font20);
PiePlot plot = (PiePlot)chart.getPlot();
plot.setLabelFont(font12);
[/Quote]

不过下面的还是不能显示
福&缘 2008-10-23
  • 打赏
  • 举报
回复
用下面这方法就行~~~

Font font20 = new Font("宋体",Font.BOLD,20);
Font font12 = new Font("宋体",Font.BOLD,12);

chart.getTitle().setFont(font20);
PiePlot plot = (PiePlot)chart.getPlot();
plot.setLabelFont(font12);
fengda2870 2008-10-06
  • 打赏
  • 举报
回复
JFreeChart1.0.10的修改源代码后终于可以正常显示中文了
但是用JFreeChart1.0.11的修改源代码后依旧不能正常显示中文
不知道为什么
java__king 2008-10-05
  • 打赏
  • 举报
回复
过滤不行吗?

??
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
谢谢了
我先看看
sunyujia 2008-10-05
  • 打赏
  • 举报
回复
多百度吧。
http://topic.csdn.net/u/20080924/14/dfca3ea4-d61f-4b68-98d0-ea15200a169c.html
sunyujia 2008-10-05
  • 打赏
  • 举报
回复
晕,其实没你想的那么多,就几处而已,你要是经常搜索替换的话有一会就改完了
查考如下吧

http://www.chinaitpower.com/A200507/2005-07-27/172324.html
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
源码很多的
具体在哪ge包中的哪个Java文件中
请指明
sunyujia 2008-10-05
  • 打赏
  • 举报
回复
把源码下回来后,搜索所有的Font 都改为宋体就行了
比如源码中有
setFont(new Font(xxx, Font.PLAIN, 18));
把xxx改为宋体

改源码不好,但是只改了字体不改逻辑,无所谓了,总比显示不出来字强。
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
如何修改源码
修改哪些地方
请指教
sunyujia 2008-10-05
  • 打赏
  • 举报
回复
据我了解不改源码好像有个别版本就是不行
我以前都是直接改源码的。呵呵,替换所有的字体为宋体。
等升级了再替,它升级比较慢。
  • 打赏
  • 举报
回复
学习啊!,帮楼主顶!
郁闷,发现今天很多不会的,不过学习重要!
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
不行啊
版本我换了
该导入的包都导入了
可以问题依旧没有解决
是不是哪个地方需要进行配置啊?
accp206 2008-10-05
  • 打赏
  • 举报
回复
建议楼主下载 1.0.10 版尝试一下,
如果确定不是版本的问题,再进一步寻找其它原因。

另外,是不是某些包未导入的原因?
楼主可以参考一下我导入的jar文件列表:

gnujaxp.jar
iText-2.1.1.jar
jcommon-1.0.13.jar
jfreechart-1.0.10-experimental.jar
jfreechart-1.0.10-swt.jar
jfreechart-1.0.10.jar
swtgraphics2d.jar
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
那我换下JFreeChart-1.0.10试下
accp206 2008-10-05
  • 打赏
  • 举报
回复
回楼主:在我的机器上并无问题。

看来是:
1、该版本JFreeChar的问题(我用的是1.0.10)
2、其它原因……
fengda2870 2008-10-05
  • 打赏
  • 举报
回复
JFrame能够显示中文
但是JFreeChart不能够显示中文
当鼠标放到饼图上面的时候
却可以显示中文的提示信息
请高手指教

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧