`

JFreeChart中文乱码和文字模糊问题的通用解决方案 | #java #chart

阅读更多

  在使用JFreeChart (http://www.jfree.org/jfreechart/ )做中文的图表时,中文乱码是一个最常要处理的问题,看网上许多文章都是在JFreeChart对象上下功夫,每次都得重新设置字体,比较麻烦。其实JFreeChart为我们提供了一个通用的解决方案——ChartTheme

 

  ChartTheme有一个默认的实现类StandardChartTheme ,该类提供了图表主题的默认实现,通过ChartFactory 默认将这一实现应用到所有ChartFactory所生成的JFreeChart 对象中,你可以利用ChartFactory的setChartTheme(ChartTheme theme) 方法改变这一默认实现,让所有由ChartFactory生成的图表都应用你所指定的主题。

 

  StandardChartTheme提供如下方法来定制字体:

  • public void setExtraLargeFont(Font font)
  • public void setLargeFont(Font font)
  • public void setRegularFont(Font font)
  • public void setSmallFont(Font font)

  只要重写这几个方法,就可以制定出一个适合中文图表的主题了:

 

StandardChartTheme theme = new StandardChartTheme("unicode") {
	public void apply(JFreeChart chart) {
		chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
				RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
		super.apply(chart);
	}
};
theme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 20));
theme.setLargeFont(new Font("宋体", Font.PLAIN, 14));
theme.setRegularFont(new Font("宋体", Font.PLAIN, 12));
theme.setSmallFont(new Font("宋体", Font.PLAIN, 10));
ChartFactory.setChartTheme(theme);
 

  重写apply(...)方法是为了借机消除文字锯齿.VALUE_TEXT_ANTIALIAS_OFF

  ChartFactory.setChartTheme(theme); 用于将该主题作为工厂的默认主题。

 

  这样一来,以后使用ChartFactory创建图表时,都可以自动应用主题中的配置了,做到解决中文乱码和锯齿一劳永逸。

 

1
0
分享到:
评论
4 楼 greatghoul 2013-09-13  
hanmiao 写道
好用,我在 51CTO 上也找到了类似的解决方案,也是通过自定义 ChartFactory 的 ChartTheme 来实现的,链接在 http://developer.51cto.com/art/201112/308902.htm


这篇文章讲解的真是详细,谢谢推荐!
3 楼 hanmiao 2013-09-05  
好用,我在 51CTO 上也找到了类似的解决方案,也是通过自定义 ChartFactory 的 ChartTheme 来实现的,链接在 http://developer.51cto.com/art/201112/308902.htm
2 楼 wyzxzws 2012-03-26  
谢谢指点,好东东西!希望多多交流!
1 楼 lanhongbo 2010-08-26  
实在的好文 顶了!

相关推荐

    jfreechart中文乱码问题解决方案

    总之,解决JFreeChart中文乱码问题的核心在于正确设置图表各元素的字体。通过选择支持中文的字体并设定相应的样式和大小,我们可以确保在生成的图表中,中文内容能清晰、正确地呈现。在实际开发中,还需要注意系统...

    Linux下的JFreeChart中文乱码口口解决

    在Linux环境下使用JFreeChart库绘制图表时,可能会遇到中文乱码的问题。JFreeChart是一个强大的Java库,它提供了一套完整的解决方案来创建各种图表,如饼图、柱状图、线图等。然而,由于编码问题,当图表中包含中文...

    解决jfreechart中文乱码方案整理.doc

    ### 解决JFreeChart中文乱码方案整理 #### 背景介绍 在使用JFreeChart绘制图表时,中文字符的显示常常会出现乱码问题。这不仅影响图表的美观度,也降低了数据可视化的效果。因此,针对JFreeChart中的中文乱码问题,...

    JFreeChart中文乱码问题解决

    ### JFreeChart中文乱码问题解决 在使用Java进行数据可视化的过程中,经常需要用到JFreeChart这一强大的图表绘制库。然而,在处理中文字符时,开发者往往会遇到一个常见的问题——中文乱码。本文将深入探讨如何解决...

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

    总的来说,解决JFreeChart中的中文乱码和数值显示问题需要理解其内部机制并进行适当的配置。而通过封装和加强官方示例,开发者可以提高代码的复用性和易用性,使得在实际项目中使用JFreeChart更加高效。在你的项目中...

    jfreechart乱码问题

    这个问题主要是由于jFreeChart默认使用的字体不支持中文字符,导致在图表中显示的中文无法正常识别,进而出现乱码现象。本文将详细介绍jFreeChart中解决中文乱码问题的方法。 #### 二、jFreeChart概述 jFreeChart...

    JFreechart 在linux下不显示及中文乱码问题

    `zysong.ttf` 文件可能是一个包含中文字符的TrueType字体文件,可以尝试在JFreechart中加载这个字体以解决乱码问题。 **解决方案** 1. **检查Java版本**:确认Java版本与JFreechart兼容,并更新到最新稳定版本。 ...

    jfreechart linux乱码解决方案

    在Linux环境下,使用JFreeChart库进行图表生成时,可能会遇到中文乱码的问题。这是因为JFreeChart默认使用的是西方字符集,不支持中文显示。本文将深入探讨如何解决这一问题,确保在Linux系统中,JFreeChart能正确地...

    解决jfreechart中文乱码

    本文将详细介绍如何解决jfreechart中文乱码问题。 首先,乱码问题通常与字符编码有关。在Java Web应用中,确保页面的编码设置正确至关重要。在给定的jsp文件中,可以看到`contentType="text/html;charset=UTF-8"`这...

    JFreeChart无中文乱码版本

    这个特定的版本,被称为“JFreeChart无中文乱码版本”,特别优化了解决在处理中文字符时可能出现的乱码问题,使得在中文环境下使用JFreeChart变得更加友好。 JFreeChart支持多种类型的图表,包括但不限于柱状图、...

    linux下JFreeChart生成的图片乱码,可以用这个字体

    解决这个问题的关键在于引入合适的字体资源,这里提到的“这个字体”可能就是指压缩包中的“simsun.ttc”和“simsun.ttf”文件,它们是宋体的TrueType字体文件,广泛应用于中文显示。 JFreeChart是一个强大的Java库...

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

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

    jfreechart Linux服务器图片中文乱码解决方案(亲测,已解决多台服务器)

    通过以上步骤,你应该能够成功解决JFreeChart在Linux服务器上生成图片时的中文乱码问题。值得注意的是,这种方法不仅适用于JFreeChart,还适用于其他依赖于Java运行环境显示中文字符的程序。在实际操作中,应根据...

    Jfreechart 中文乱码解决方法

    Jfreechart 中文乱码的解决方法,网上共享的资源

    zysong.ttf jfreechart 解决中文乱码 问题

    这是一款专为Linux设计的中文字体,包含了大量汉字,可以有效地解决JFreeChart在Linux环境下的中文乱码问题。将“zysong.ttf”字体文件添加到系统中,可以让JFreeChart在绘制图表时能够正确渲染中文字符。 在Java...

    jfreechart解决乱码.doc

    本文将详细介绍如何通过设置字体来解决JFreeChart中柱状图的中文乱码问题。 #### 二、背景知识 `JFreeChart`是一款开源的Java图表绘制工具包,它提供了丰富的API来创建各种类型的图表,如线图、饼图、柱状图等。在...

    jfreechart形成报表文字乱码解决

    解决JFreeChart乱码问题的基本思路是修改图表的各个组成部分(如标题、坐标轴、图例等)的字体设置,确保它们使用支持中文的字体。以下是一些关键的类和接口,以及如何使用它们来解决乱码问题: 1. **数据源...

    Linux下JFreechart中文乱码的解决.docx

    Linux下JFreechart中文乱码的解决.docx

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

    绝对物超所值! JFreeChart-1.0.13原文件含jar包。 1、JFreeChart生成图片路径教程 2、JFreeChart使用教程(含下载安装,超详细...5、JFreeChart乱码解决方法 等等 包括csdn上得优秀案例 ------20+M的数据不要别后悔哦

Global site tag (gtag.js) - Google Analytics