在使用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创建图表时,都可以自动应用主题中的配置了,做到解决中文乱码和锯齿一劳永逸。
分享到:
相关推荐
总之,解决JFreeChart中文乱码问题的核心在于正确设置图表各元素的字体。通过选择支持中文的字体并设定相应的样式和大小,我们可以确保在生成的图表中,中文内容能清晰、正确地呈现。在实际开发中,还需要注意系统...
在Linux环境下使用JFreeChart库绘制图表时,可能会遇到中文乱码的问题。JFreeChart是一个强大的Java库,它提供了一套完整的解决方案来创建各种图表,如饼图、柱状图、线图等。然而,由于编码问题,当图表中包含中文...
### 解决JFreeChart中文乱码方案整理 #### 背景介绍 在使用JFreeChart绘制图表时,中文字符的显示常常会出现乱码问题。这不仅影响图表的美观度,也降低了数据可视化的效果。因此,针对JFreeChart中的中文乱码问题,...
### JFreeChart中文乱码问题解决 在使用Java进行数据可视化的过程中,经常需要用到JFreeChart这一强大的图表绘制库。然而,在处理中文字符时,开发者往往会遇到一个常见的问题——中文乱码。本文将深入探讨如何解决...
总的来说,解决JFreeChart中的中文乱码和数值显示问题需要理解其内部机制并进行适当的配置。而通过封装和加强官方示例,开发者可以提高代码的复用性和易用性,使得在实际项目中使用JFreeChart更加高效。在你的项目中...
这个问题主要是由于jFreeChart默认使用的字体不支持中文字符,导致在图表中显示的中文无法正常识别,进而出现乱码现象。本文将详细介绍jFreeChart中解决中文乱码问题的方法。 #### 二、jFreeChart概述 jFreeChart...
`zysong.ttf` 文件可能是一个包含中文字符的TrueType字体文件,可以尝试在JFreechart中加载这个字体以解决乱码问题。 **解决方案** 1. **检查Java版本**:确认Java版本与JFreechart兼容,并更新到最新稳定版本。 ...
在Linux环境下,使用JFreeChart库进行图表生成时,可能会遇到中文乱码的问题。这是因为JFreeChart默认使用的是西方字符集,不支持中文显示。本文将深入探讨如何解决这一问题,确保在Linux系统中,JFreeChart能正确地...
本文将详细介绍如何解决jfreechart中文乱码问题。 首先,乱码问题通常与字符编码有关。在Java Web应用中,确保页面的编码设置正确至关重要。在给定的jsp文件中,可以看到`contentType="text/html;charset=UTF-8"`这...
这个特定的版本,被称为“JFreeChart无中文乱码版本”,特别优化了解决在处理中文字符时可能出现的乱码问题,使得在中文环境下使用JFreeChart变得更加友好。 JFreeChart支持多种类型的图表,包括但不限于柱状图、...
解决这个问题的关键在于引入合适的字体资源,这里提到的“这个字体”可能就是指压缩包中的“simsun.ttc”和“simsun.ttf”文件,它们是宋体的TrueType字体文件,广泛应用于中文显示。 JFreeChart是一个强大的Java库...
标题 "jfreechart部署在Linux服务器上生成图片乱码的解决方案" 涉及到的主要知识点是关于Java图形库JFreeChart在Linux环境中的使用,特别是解决中文字符乱码的问题。JFreeChart是一个广泛使用的开源Java库,它允许...
通过以上步骤,你应该能够成功解决JFreeChart在Linux服务器上生成图片时的中文乱码问题。值得注意的是,这种方法不仅适用于JFreeChart,还适用于其他依赖于Java运行环境显示中文字符的程序。在实际操作中,应根据...
Jfreechart 中文乱码的解决方法,网上共享的资源
这是一款专为Linux设计的中文字体,包含了大量汉字,可以有效地解决JFreeChart在Linux环境下的中文乱码问题。将“zysong.ttf”字体文件添加到系统中,可以让JFreeChart在绘制图表时能够正确渲染中文字符。 在Java...
本文将详细介绍如何通过设置字体来解决JFreeChart中柱状图的中文乱码问题。 #### 二、背景知识 `JFreeChart`是一款开源的Java图表绘制工具包,它提供了丰富的API来创建各种类型的图表,如线图、饼图、柱状图等。在...
解决JFreeChart乱码问题的基本思路是修改图表的各个组成部分(如标题、坐标轴、图例等)的字体设置,确保它们使用支持中文的字体。以下是一些关键的类和接口,以及如何使用它们来解决乱码问题: 1. **数据源...
Linux下JFreechart中文乱码的解决.docx
绝对物超所值! JFreeChart-1.0.13原文件含jar包。 1、JFreeChart生成图片路径教程 2、JFreeChart使用教程(含下载安装,超详细...5、JFreeChart乱码解决方法 等等 包括csdn上得优秀案例 ------20+M的数据不要别后悔哦