解决jfreechart中文乱码,以及字体模糊,设置主题问题

jfreechart后台生成图片采样完美解决方案以及样式美化 用jfreechart生成图片有很多问题,例如:x轴数据量多一点时,直接显示成了省略号,另外jfreechart默认的样式也是比较丑的,如下: jfreechart在画x轴标签时,会根据图片设置的宽度,和x轴坐标数计算出每个坐标占用的最大宽度,超过这个宽度,再去判断是否设置了参数: 默认为0,不设置这个参数的话就不会进行换行,就会直接显示省略号。因此解决思路之一就是设置这个换行参数,或者适当增加图片宽度,可以在一定范围内解决x轴省略号的问题。但是当x轴数量太多,需要进行采样................. 阅读详情
发现一篇博客解决了我的乱码问题,复制过来分享下。
package cn.com.gwypx.util;

import java.awt.Color;
import java.awt.Font;
import java.awt.Paint;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.DefaultDrawingSupplier;
import org.jfree.chart.plot.PieLabelLinkStyle;
import org.jfree.chart.renderer.category.StandardBarPainter;
import org.jfree.chart.renderer.xy.StandardXYBarPainter;
import org.jfree.ui.RectangleInsets;

public class ChartUtils
{
    private static Font FONT = new Font("宋体", Font.PLAIN, 12);

    public static Color[] CHART_COLORS = {new Color(31, 129, 188),
            new Color(241, 92, 128), new Color(124, 181, 236),
            new Color(102, 172, 204), new Color(102, 102, 0),
            new Color(204, 153, 102), new Color(0, 153, 255),
            new Color(204, 255, 255), new Color(51, 153, 153),
            new Color(255, 204, 102), new Color(102, 102, 0),
            new Color(204, 204, 204), new Color(204, 255, 255),
            new Color(255, 204, 204), new Color(255, 255, 204),
            new Color(255, 153, 204), new Color(51, 0, 0),
            new Color(0, 51, 102), new Color(0, 153, 102),
            new Color(153, 102, 153), new Color(102, 153, 204),
            new Color(153, 204, 153), new Color(204, 204, 153),
            new Color(255, 255, 153), new Color(255, 204, 153),
            new Color(255, 153, 204), new Color(204, 153, 153),
            new Color(204, 204, 255), new Color(204, 255, 204),
            new Color(153, 204, 153), new Color(255, 204, 102)};// 颜色

    /**
     * 中文主题样式 解决乱码
     */
    public static void setChartTheme()
    {
        // 设置中文主题样式 解决乱码
        StandardChartTheme chartTheme = new StandardChartTheme("CN");
        // 设置标题字体
        chartTheme.setExtraLargeFont(FONT);
        // 设置图例的字体
        chartTheme.setRegularFont(FONT);
        // 设置轴向的字体
        chartTheme.setLargeFont(FONT);
        chartTheme.setSmallFont(FONT);
        chartTheme.setTitlePaint(new Color(51, 51, 51));
        chartTheme.setSubtitlePaint(new Color(85, 85, 85));

        chartTheme.setLegendBackgroundPaint(Color.WHITE);// 设置标注
        chartTheme.setLegendItemPaint(Color.BLACK);//
        chartTheme.setChartBackgroundPaint(Color.WHITE);
        // 绘制颜色绘制颜色.轮廓供应商
        // paintSequence,outlinePaintSequence,strokeSequence,outlineStrokeSequence,shapeSequence

        Paint[] OUTLINE_PAINT_SEQUENCE = new Paint[]{Color.WHITE};
        // 绘制器颜色源
        DefaultDrawingSupplier drawingSupplier = new DefaultDrawingSupplier(
                CHART_COLORS, CHART_COLORS, OUTLINE_PAINT_SEQUENCE,
                DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE,
                DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE,
                DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE);
        chartTheme.setDrawingSupplier(drawingSupplier);

        chartTheme.setPlotBackgroundPaint(Color.WHITE);// 绘制区域
        chartTheme.setPlotOutlinePaint(Color.WHITE);// 绘制区域外边框
        chartTheme.setLabelLinkPaint(new Color(8, 55, 114));// 链接标签颜色
        chartTheme.setLabelLinkStyle(PieLabelLinkStyle.CUBIC_CURVE);

        chartTheme.setAxisOffset(new RectangleInsets(5, 12, 5, 12));
        chartTheme.setDomainGridlinePaint(new Color(192, 208, 224));// X坐标轴垂直网格颜色
        chartTheme.setRangeGridlinePaint(new Color(192, 192, 192));// Y坐标轴水平网格颜色

        chartTheme.setBaselinePaint(Color.WHITE);
        chartTheme.setCrosshairPaint(Color.BLUE);// 不确定含义
        chartTheme.setAxisLabelPaint(new Color(51, 51, 51));// 坐标轴标题文字颜色
        chartTheme.setTickLabelPaint(new Color(67, 67, 72));// 刻度数字
        chartTheme.setBarPainter(new StandardBarPainter());// 设置柱状图渲染
        chartTheme.setXYBarPainter(new StandardXYBarPainter());// XYBar 渲染

        chartTheme.setItemLabelPaint(Color.black);
        chartTheme.setThermometerPaint(Color.white);// 温度计

        ChartFactory.setChartTheme(chartTheme);
    }

    /**
     * 解决中文字体模糊
     */
    public static void setAntiAlias(JFreeChart chart)
    {
        chart.setTextAntiAlias(false);

    }
}
创建报表对象之前调用setChartTheme(),创建报表对象之后调用setAntiAlias(JFreeChart chart)

JFreeChart 常用属性设置 JFreeChart类: void setAntiAlias(boolean flag) 字体模糊边界 void setBackgroundImage(Image image) 背景图片 void setBackgroundImageAlignment(int alignment) 背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义) void setBackgroundImageAlpha(float alpha) 背景图片透明度(0.0~1.0) void setBa... 阅读详情

相关推荐

jfreeChart中文显示为方框解决办法 java实现jfreetree折线图的实例

目录 java 实现绘制直线图 org.jfree.ui.RectangleInsets.(DDDD)V java 实现绘制直线图 导入图中版本对应的jar包; 效果图片: 代码: package chart; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree..

ZhangJiqun&191cm&85kg 893

JFreeChart 图表文字模糊问题的有效解决方法

 JFreeChart 文字模糊问题不令人满意,网上有提到用修改字体的方式来改善,感觉还是效果不怎么样,所以继续测试,找到了比较满意的解决方法下面这个图是默认情况下显示的字体下面这个是改成黑体字候的显示情况可以看到改成黑体后效果有所改善,不过还是有点模糊继续看下一张这个是修改渲染参数后的效果  可以看到文字很清晰了,实际上和PHOTOSHOP里吧文字设置成名晰是一样的。将文字的抗锯齿参数关闭。

技术开发 2533

高德地图+Three.js实战:手把手教你打造数字农场3D可视化大屏(附完整源码)

本文详细介绍了如何利用高德地图JS API与Three.js技术栈,构建一个功能强大的数字农场3D可视化大屏。文章从技术选型、架构设计出发,深入讲解了坐标对齐、图层管理、性能优化等核心工程实践,并提供了完整的模块化代码示例,旨在为智慧农业及类似场景的3D地理可视化项目提供一套可复用的解决方案。

k8s6orchestrator的博客 890

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

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

dreambegin 的 优快云 2449

BMW Trojan 样本分析

仅用于链接已经删却但是需要方便查阅的原文http://blog.youkuaiyun.com/zirconsdu/article/details/7997470 转载请注明出处http://blog.youkuaiyun.com/zirconsdu/article/details/8153813。 一些具体数据结构和具体路径隐去。   BMW木马样本分析 摘要 2011年底和某Hunter的谈话涉及到当时新检

zirconsdu的专栏 3912

FPGA控制DDR读写(AXI4总线接口)

FPGA控制DDR读写

qq_42712308的博客 1万+

JFreeChart中文乱码、文字模糊通用解决方案

在使用JFreeChart 做中文的图表时,中文乱码是一个最常要处理的问题,看网上许多文章都是在JFreeChart对象上下功夫,每次都得重新设置字体,比较麻烦。其实JFreeChart为我们提供了一个通用的解决方案——ChartTheme 。   ChartTheme有一个默认的实现类StandardChartTheme ,该类提供了图表主题的默认实现,通过ChartFactory 默认将这一

码小农 2834

ENVI5.6 批量处理GF-2/GF-6/GF-7:从安装到融合的完整自动化流程

本文详细介绍了ENVI5.6环境下批量处理GF-2/GF-6/GF-7卫星数据的完整自动化流程,包括环境配置、工具安装、正射校正、图像融合等关键步骤。通过实战案例和优化技巧,帮助用户高效完成高分卫星影像处理,提升工作效率。特别针对GF-6和GF-7的特殊处理要点进行了深入解析。

weixin_42546392的博客 179

JFreeChart 学习笔记

目录目录 JfreeChart 的核心对象 制图对象 制图工厂对象 数据集合对象 绘图区对象 PiePlot 类 CategoryPlot 类 XYPlot 类 坐标轴对象 CategoryAxis 类 ValueAxis 类 NumberAxis 类 DateAxis 类 图片渲染对象 JFreeChart 的应用 如何获取图片 创建数据集合与JFreeChart 实例 图表相关属性的设置 JFr

吴杨的博客 7069

MOBsf联动雷电模拟器(在docker国内库撤销后)

MobSF (全称:Mobile Security Framework,中文名:移动安全框架) 是一个自动化的移动应用程序(Android / iOS / Windows)开源测试工具,该工具采用Python开发,能够执行静态,动态和恶意软件分析。MobSF提供了很多自动化分析功能,尤其适用于Android应用。安装必备(默认已准备好)docker(kali) 现在的国内镜像源都已经下架了只能开代理下载桌面版然后给pull到本地。

qq_48149564的博客 1601

SOI LDMOS器件的Sentaurus TCAD建模与关键电学特性仿真研究

本文研究了SOI LDMOS器件的TCAD建模与电学特性仿真。通过Sentaurus TCAD平台建立了单RESURF结构的SOI LDMOS模型,详细阐述了器件结构原理和RESURF耐压机制。研究采用SDE进行几何定义和掺杂配置,在Sentaurus Device中构建了完整的物理模型体系,包括迁移率、复合和碰撞电离模型。通过系统仿真提取了器件的转移特性、输出特性和击穿特性等关键参数,分析了各参数对性能的影响规律。研究结果为功率半导体器件的仿真建模提供了规范化参考,有助于优化SOI LDMOS的性能设计。

huanghm88的专栏 134

jfreechart一&二维报表导出为word&pdf&html-中文乱码和字体模糊问题(一)

jfreechart是java平台上一个开放的绘制图表的类库,完全使用java语言编写. 报表导出涉及的两个重要问题是:1.中文乱码问题.2.报表字体模糊问题. 本实例对这两个问题进行了有效的解决,同时结合第三方开源类库itext详细介绍了导出一维2D/3D的饼状图,柱状图和折线图分别到word, pdf和html文件,和导出二维2D/3D的饼状图,柱状图和折线图分别到word,pdf和ht

sidongxue2的专栏 2217

基于STM32的智能手环心率血氧体温监测系统(完整设计)

本文设计了一款基于STM32单片机的多功能智能手环系统,集成心率、血氧、体温实时监测功能,并支持运动数据管理与健康预警。系统采用MAX30102传感器实现心率血氧监测,DS18B20检测体温,ADXL345进行步数统计,通过OLED屏幕显示数据。研究通过低功耗硬件选型与模块化软件架构设计,实现了多参数同步采集、阈值预警及蓝牙数据传输功能。测试结果表明,系统在健康监测精度、续航能力及用户交互体验上均达到预期目标,为个人健康管理提供了实用解决方案。

3254968421的博客 703

JFreeChart乱码解决方法

  jfreechart主要是用来动态产生各种数据图形的,可最初使用的时候大都会碰到图片中的中文乱码或是一个小方块的情况。仔细研究主要有以下2种原因:1:服务器缺少中文字体,这多发生在Hp等unix操作系统上,解决的方法就是下载可用字体库到系统中,有人也提出在Windows上产生图片在传回到Unix主机上的方法。2:软件版本问题,jfreechart-1.0.10有人说

不在JAVA中崛起,就在JAVA中死去! 7510

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Jfreechart字体模糊的解决方法

1.找到当前jar对应版本的jfreechart源代码. 2.全文替换所有new Font("XXXX")为new Font("宋体"). 3.重新编译,打包. 解决了,吼吼!

step-by-step 1002

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

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

Ghoul To World! 350

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Jfreechart中文API和属性详解

为什么80%的码农都做不了架构师?>>> ...

weixin_34392843的博客 522

jfreeChart图表绘制介绍

需要的jar包:jfreechart-1.0.13.jar  jcommon-1.0.16.jar 官网:http://www.jfree.org/index.html 目前最新版本是1.0.13    可以在官网下载demo 里面有所有类型的例子 jfreeChart对中

xue_feitian的专栏 1172

JFreechart生成带热点的饼图

      前段时间公司要做报表开发,顺便研究了下JFreechart的简单使用,个人觉得JFreechart生成的图片效果很差,如:图像、字体模糊,缺乏动态效果,比flash相差很远。不过作为学习,跟大家交流下JFreechart的开发过程。         遇到问题:       windows下图片中文显示乱码--这个主要是由于没有给中文设置字体造成的       某些linux下图...

152

jfreechar 中文帮助

转 [code="java"] JFreeChart类: void setAntiAlias(boolean flag) 字体模糊边界 void setBackgroundImage(Image image) 背景图片 void setBackgroundImageAlignment(int alignment) 背景图片对齐方式(参数常量在org.jfree.ui.Alig...

幻宸-javablog 138
上一篇: 用js判断当前是什么浏览器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值