`
zuiyanwangyue
  • 浏览: 167128 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

JFreeChart由1.0.10升级到1.0.13后的乱码解决方案

阅读更多

项目中图表制作时使用到了JfreeChart,最近在升级版本时遭遇到了中文乱码问题,当然这并非传说中的JSP编码造成的,网上baidu了半天,徒劳无果,不得已只能自己分析解决。

 

过程甚为艰难,在此不予赘述,仅记下问题根源及解决方案,以飨同“僚”。

 

根源:从1.0.11版本起,jfreechart引入了一个ChartTheme(图表主题)的概念,并提供了标准的实现(org.jfree.chart.StandardChartTheme),标准图表主题中定义了制作图表时所使用的四种字体(超大、大、常规、小)。

public StandardChartTheme(String name) {
        if (name == null) {
            throw new IllegalArgumentException("Null 'name' argument.");
        }
        this.name = name;
        this.extraLargeFont = new Font("Tahoma", Font.BOLD, 20);
        this.largeFont = new Font("Tahoma", Font.BOLD, 14);
        this.regularFont = new Font("Tahoma", Font.PLAIN, 12);
        this.smallFont = new Font("Tahoma", Font.PLAIN, 10);
        ……
}

中文乱码正是由于Tahoma这种字体不能正常解码造成的。

解决方案:在系统启动时(在使用jfreechart之前)将标准图表主题中的字体进行覆盖设置即可。我的一种思路是定义一个Java Bean(系统开发使用到了Spring)并它实现org.springframework.beans.factory.InitializingBean接口,然后在afterPropertiesSet方法中进行jfreechart的配置,只要随后在需要时把它当做一个普通的bean配置到spting的配置文件中就可以了,源码如下:

 

public class JFreeChartChineseEnvConfiguration implements InitializingBean{

	public void afterPropertiesSet() throws Exception {
		ChartTheme chartTheme=ChartFactory.getChartTheme();
		if(chartTheme instanceof StandardChartTheme){
			StandardChartTheme sct=(StandardChartTheme)chartTheme;
			Font extraLarge=sct.getExtraLargeFont();
			if(extraLarge!=null) sct.setExtraLargeFont(new Font("宋体",extraLarge.getStyle(),extraLarge.getSize()));
			Font large=sct.getLargeFont();
			if(large!=null) sct.setLargeFont(new Font("宋体",large.getStyle(),large.getSize()));
			Font regular=sct.getRegularFont();
			if(regular!=null) sct.setRegularFont(new Font("宋体",regular.getStyle(),regular.getSize()));
			Font small=sct.getSmallFont();
			if(small!=null) sct.setSmallFont(new Font("宋体",small.getStyle(),small.getSize()));
		}
	}
}

 

分享到:
评论
3 楼 sdh5724 2011-05-24  
zuiyanwangyue 写道
sdh5724 写道
头疼, 这也会甚为艰难。  多学习才是王道。

呵呵 希望老兄多多指点


多看看代码那些破玩意,比看书要好。
2 楼 zuiyanwangyue 2011-05-24  
sdh5724 写道
头疼, 这也会甚为艰难。  多学习才是王道。

呵呵 希望老兄多多指点
1 楼 sdh5724 2011-05-23  
头疼, 这也会甚为艰难。  多学习才是王道。

相关推荐

    jfreechart-1.0.10.jar

    jfreechart-1.0.10.jar 对解决乱码有用

    jfreechart-1.0.13中文乱码,数值显示等问题

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,如柱状图、折线图和...在你的项目中,可以参考提供的文件“jfreechart”来查看具体的实现方式,这将有助于你更好地理解和应用这些解决方案。

    jfreechart-1.0.10.jar 压缩包 刘尧涛

    **JFreeChart 概述** JFreeChart 是一个开源的Java库,用于生成高质量的图表。这个库在Java开发社区中被广泛使用,因为它能够帮助开发者轻松地...无论是简单还是复杂的数据展示,JFreeChart 都能提供合适的解决方案。

    jfreechart-1.0.10所需开发包

    综上所述,`JFreeChart-1.0.10`与`JCommon-1.0.13`这两个库共同构成了一个强大的Java图表生成工具,能够帮助开发者轻松创建出专业且功能丰富的图表,无论是在桌面应用、Web应用还是移动应用中,都能发挥出其强大的...

    jfreechart-1.0.10.jar包

    **JFreeChart 1.0.10:Java Swing与Web报表开发的关键组件** JFreeChart是一个开源的Java库,专为创建高质量的图表而设计,适用于Java Swing应用程序以及Web应用。这个`jfreechart-1.0.10.jar`包是JFreeChart项目的...

    jfreechart,jfreechart-1.0.13,jfreechart-1.0.13,jfreechart

    这个压缩包“jfreechart-1.0.13”包含了JFreeChart的完整版本,让我们一起深入探讨其核心功能和使用方法。 JFreeChart是Java中最优秀的绘图工具之一,它支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特...

    jfreechart-1.0.13.jar 最新版下载

    jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13 jfreechart-1.0.13

    jfreechart-1.0.10_demo

    总结来说,JFreeChart 1.0.10的演示项目为开发者提供了一个丰富的学习资源,通过探索这个演示,我们可以了解到如何利用JFreeChart创建各种复杂的图表,包括设置数据源、定制图表样式、添加交互功能等。无论你是初学...

    jfreechart-1.0.10

    JFreeChart 目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求

    jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar)

    jfreechart(包jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和jcommon-1.0.13.jar) jfreechart(包含jfreechart.jar和...

    jfreechart-1.0.10 javadoc

    "jfreechart-1.0.10 javadoc"是JFreeChart库1.0.10版本的API文档,包含了详细的类、方法和其他编程元素的说明,对于理解和使用JFreeChart进行开发至关重要。 JFreeChart支持多种类型的图表,如折线图、饼图、柱状图...

    jfreechart-1.0.10.rar

    《JFreeChart 1.0.10:创建专业图表的必备工具》 JFreeChart 是一个开源的 Java 库,专为生成高质量的图表而设计。它在 Java 平台上广泛应用于各种项目,包括报告、数据分析、Web 应用以及桌面应用等,提供了丰富的...

    JFreeChart 详细中文教程 案例 中文API 乱码解决方法

    JFreeChart-1.0.13原文件含jar包。 1、JFreeChart生成图片路径教程 2、JFreeChart使用教程(含下载安装,超详细) 3、JFreeChart使用详细教程 ...5、JFreeChart乱码解决方法 等等 包括许多优秀案例

    JFreeChart1.0.10

    - **添加依赖**:在Java项目中,首先需要将jfreechart-1.0.10.jar文件添加到类路径中,或者在Maven/Gradle项目中添加对应的依赖配置。 - **创建图表**:通过`ChartFactory`类可以快速创建各种类型的图表,例如`...

    jfreechart-1.0.10-demo-all.src.zip 全部源码

    《JFreeChart 1.0.10 Demo 源码解析与应用探索》 JFreeChart 是一个广泛使用的开源Java库,它提供了一个强大的工具集,用于创建各种类型的图表,包括柱状图、饼图、线图、散点图等。在Java应用程序中,无论是桌面...

    jfreechart部署linux服务器生成图片乱码解决方案

    标题 "jfreechart部署在Linux服务器上生成图片乱码的解决方案" 涉及到的主要知识点是关于Java图形库JFreeChart在Linux环境中的使用,特别是解决中文字符乱码的问题。JFreeChart是一个广泛使用的开源Java库,它允许...

    jfreechart-1.0.10 jar包

    刚刚找jfreechart 1.0版本的jar包,马上传上来,希望能对大家的学习有用。

Global site tag (gtag.js) - Google Analytics