jfreechart

【JFreeChart】JFreeChart简介 JFreeChart是一个开源的java图形报表引擎项目,主要用来创建各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及仪表盘等。它可以生成Swing图形、PNG和JPEG图形以及PDF/EPS/SVG等一些矢量图形。 使用JFreeChart构建图表时需要导入一下两个jar包: 核心类包介绍: JFreeChart主要有... 阅读详情

JFreeChart 是什么?我就不再重复介绍了,网上文章大把...
官方主页: http://www.jfree.org/jfreechart/index.html

<--本文以jfreechart-1.0.0-pre2版本为基准-->

那么为什么要Hacking JFreeChart呢?

罪状一:中文Label显示模糊;
罪状二:无简体中文LocalizationBundle.properties文件;
罪状三:向下兼容性不好,官方说jdk1.2+,其实是jdk1.4+;
                兼容问题A:另存菜单输出PNG文件只能运行于jdk1.4+;
                兼容问题B:另存菜单不能输出JPEG格式图片;
                兼容问题C:jdk1.3-环境下中文ToolTips不能正常显示;

如果一定要加一条罪状的话:目前开源免费的chart项目无出其右;
十分感谢JFreeChart开发者的辛苦努力!虽然它现在还不完美。

Ok,下面为Hacking做一些准备工作...
1.下载jfreechart-1.0.0-pre2.zip解压;
2.将/解压目录/source/下的源码加入任意project并配置jdk&lib;
3.安装一个有批量文件查询/替换功能的工具,比如UtralEdit;

<本文允许任意转载,请注明出处!最后一块骨头.2005-05-16>

Hacking Begin

1.解决中文Label显示模糊问题
  原因分析:JFreeChart默认字体对中文的支持不完善;
  解决步骤:搜索/解压目录/source/下含有"new Font("的文件;
           发现JFreeChart默认字体为
           "foo"
           "Serif"
           "Dialog"
           "SansSerif"
           "Bitstream Vera Sans"
           批量替换他们为任意中文字体(推荐"黑体");
           当然你也可以把字体写入properties文件,
           但这里介绍的是最简单的方法;
           然后重新编译你修改过的文件,Ok,搞定!

2.无简体中文LocalizationBundle.properties文件
  org/jfree/chart/LocalizationBundle.properties
  主要用来显示右键功能菜单的文字,下面我们来汉化:

  注意:LocalizationBundle.properties的编码不是Unicode,
       简体中文要用GBK编码。
 
  获得GBK编码的方法是:
  cd ***/j2sdk1.*.*/bin
  native2ascii -encoding GBK 1.txt 2.txt
  注:1.txt放中文文本,2.txt输出GBK编码。
 
# org.jfree.chart.ChartPanel ResourceBundle properties file
#
# Changes (from 31-Aug-2003)
# --------------------------
# 31-Aug-2003 : Initial version (AL);
# 16-May-2005 : Add GBK version (FinalBone);
# 16-May-2005 : Add JPG_Image_Files (FinalBone);

#---------------EN---------------#
#Auto_Range=Auto Range
#All_Axes=Both Axes
#Chart_Properties=Chart Properties
#Copy=Copy
#Print...=Print...
#Save_as...=Save as...
#Properties...=Properties...
#PNG_Image_Files=PNG Image Files
#JPG_Image_Files=JPG Image Files
#Domain_Axis=Domain Axis
#Range_Axis=Range Axis
#Zoom_In=Zoom In
#Zoom_Out=Zoom Out

#---------------GBK---------------#
Auto_Range=/u81ea/u52a8/u8c03/u6574
All_Axes=/u6240/u6709/u5750/u6807/u8f74
Chart_Properties=/u56fe/u8868/u5c5e/u6027
Copy=/u590d/u5236
Print...=/u6253/u5370...
Save_as...=/u53e6/u5b58/u4e3a...
Properties...=/u5c5e/u6027...
PNG_Image_Files=PNG/u56fe/u50cf
JPG_Image_Files=JPG/u56fe/u50cf
Domain_Axis=/u57df/u5750/u6807/u8f74
Range_Axis=/u503c/u5750/u6807/u8f74
Zoom_In=/u653e/u5927
Zoom_Out=/u7f29/u5c0f

另外还有两个同名文件,希望大家有时间也汉化一下。
org/jfree/chart/ui/LocalizationBundle.properties
org/jfree/chart/plot/LocalizationBundle.properties

3.兼容性问题
   a.PNG输出问题 b.无JPEG输出菜单
    原因分析:javax.imageio.ImageIO这个类只有jdk1.4+才有。
    解决步骤:1.打开org.jfree.chart.ChartPanel,
               查看doSaveAs()方法,了解其结构;
             2.改写doSaveAs()方法,重新编译;
             3.如果运行环境是jdk1.3-
               打开org.jfree.chart.encoders.SunPNGEncoderAdapter
               注释掉javax.imageio.ImageIO,重新编译。


    /**
     * Updated by FinalBone 2005-5-16 PNG --> JPEG
     *
     * Opens a file chooser and gives the user an opportunity
     * to save the chart in JPEG format.
     *
     * @throws IOException if there is an I/O error.
     */
    public void doSaveAs() throws IOException {

        JFileChooser fileChooser = new JFileChooser();
        ExtensionFileFilter filter = new ExtensionFileFilter(
            localizationResources.getString("JPG_Image_Files"), ".jpg"
        );
        fileChooser.addChoosableFileFilter(filter);

        int option = fileChooser.showSaveDialog(this);
        if (option == JFileChooser.APPROVE_OPTION) {
            String filename = fileChooser.getSelectedFile().getPath();
            if (isEnforceFileExtensions()) {
                if (!filename.endsWith(".jpg")) {
                    filename = filename + ".jpg";
                }
            }
            ChartUtilities.saveChartAsJPEG(
                new File(filename), this.chart, getWidth(), getHeight()
            );
        }

    }

  c.中文ToolTips不能正常显示(显示为小方框)
    原因分析:相关字体找不到。
    解决步骤:1.打开org.jfree.chart.block.LabelBlock
               查看其构造函数public LabelBlock(String label);
             2.修改构造函数的字体定义,重新编译。

    /**
     * Creates a new label block.
     *
     * @param label  the label.
     */
    public LabelBlock(String label) {
         /**
          * Updated by FinalBone 2005-05-16
          * "Bitstream Vera Sans" --> "黑体"
          * For Chinese-Simplified ToolTips
          * JDK 1.3- Environment
          */
        this(label, new Font("黑体", Font.PLAIN, 11));
    }

Hacking End

<本文允许任意转载,请注明出处!最后一块骨头.2005-05-16>

这时的 JFreeChart 才是真正jdk1.2+兼容,完美支持中文。

希望下一版本的 JFreeChart 的字体定义写入properties文件,
并且不同路经下的properties文件最好不要重名。

本人接触 JFreeChart 刚刚几天,错漏难免,请多多指正!

【JFreeChart】JFreeChart—输出柱形图 如何将数据以柱状图的形式显示出来? 实现过程: 1、获取数据; 2、根据工厂模式生成图形对象,通过获取该图形对象,来进一步获得该图形对象内部的小对象,并对它们的字体等进行设置; 3、将图形放到面板中; 4、构建一个方法,将放置了图形的面板返回出去,当需要使用该面板时只需调用该方法即可(封装); 5、创建一个窗体,将面板放到该窗体中进行显示; 柱形图比饼状图复杂,生成的图标数据需要有两... 阅读详情

相关推荐

JFreeChart初始和下载

JFreeChart初始和下载

私信可回答各种问题~ 2156

JFreeChart的使用

前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 注意:下载的Jfreechart版本不要太高,新版本对中文的显示会出问题,我自己后来下的是1.0.10的版本。 实例一:比较简单的application版本的饼图 ...

weixin_30596165的博客 466

Win10家庭版如何添加本地用户和组

在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。

nntxthml的博客 4558

JFreeChart Hacking-补丁贴

JFreeChart HackingJFreeChart 是什么?我就不再重复介绍了,网上文章大把...官方主页:http://www.jfree.org/jfreechart/index.html那么为什么要Hacking JFreeChart呢?罪状一:中文Label显示模糊;罪状二:无简体中文LocalizationBundle.properties文件;罪状三:向下兼容

seawavecau的专栏 747

尚硅谷课程【笔记】——大数据之Shell【一】

【【尚硅谷】Shell脚本从入门到实战】笔记

n04j04h06的博客 1322

多周期路径约束(set_multicycle_path )

1.由慢到快的多周期约束 如下图所示,发射时钟周期是接受时钟周期的4倍。默认情况下,按照1T原则来进行静态时序分析和布局布线的。即建立时间是在发射沿后的第一个捕获沿检查,而保持时间是同一时刻下源时钟和捕获时钟的触发边沿下检查的(建立时间检查边沿的前一个触发沿)。 但是这样导致的问题就是该路径过于苛刻,为了满足这条路径的要求,不得不放弃其他路径。或者根本没办法保证这个默认的约束。总之最终造成...

Arist. 5509

struts漏洞解决方法

解决方案: 1、删除jar包 freemarker-2.3.8.jar                 xwork-2.0.7.jar                                      ognl-2.6.11.jar                              struts2-core-2.0.14.jar                    

sjxos的博客 1171

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 864

struts2升级解决漏洞问题

Struts2属于老框架了,最近爆出漏洞,先看看漏洞描述: Apache Struts2 框架是一个用于开发 Java EE 网络应用程序的 Web 框架。如果开发人员通过使用%{…}语法应用了强制 OGNL 求值,某些tag的属性可以执行双重求值。对不受信任的用户输入使用强制OGNL求值可能会导致远程执行代码。 官方通告:https://cwiki.apache.org/confluence/display/WW/S2-061 解决方案:升级struts到最新版本:Apache Struts vers

szno1的专栏 1335

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

weixin_72050316的博客 1387

raw (R/G, B/G) 色度域从白点筛选到 mired 直方图的完整构建流程

raw 域用draw​δraw​筛出白点后,。,与 CIE uv 域流程逐步对应。

大熊 40

1.JFreeChart安装

本文链接:https://blog.youkuaiyun.com/cnds123321/article/details/89600328 JFreeChart教程目录链接:https://blog.youkuaiyun.com/cnds123321/article/details/89600379 1.JFreeChart安装 要安装JFreeChart,首先需要在系统上安装Java。 一般要用jfreechar...

二木成林 7522

基于VisionMaster实现数据实时存储至MySQL (二)

摘要:之前的分享主要聚焦于简单的一维数据实时存储。但在做缺陷检测项目时,情况往往更加复杂:一张检测图像中可能同时存在多个缺陷,每个缺陷都有一组独立的核心参数(如质心、长短轴、面积等)。如何在 MySQL 中记录这些成组出现的缺陷数据,而不只是简单的单条记录?

haier123888的博客 227

JFreeChart

JfreeChart是用Java开发的开源库,它可以在基于Java的应用程序可用于创建各种各样的图表。通过使用JFreeChart,可以创建2D和3D图表,如饼图,条形图,折线图,XY图和3D图表所有常用的主要类型。

qq_26817225的博客 1527

解锁RK3588多屏异显:MIPI+HDMI+EDP混合输出全攻略

本文详细介绍了RK3588处理器在MIPI+HDMI+EDP混合输出配置中的技术实现与应用。作为一款高性能处理器,RK3588凭借其强大的图形处理能力,支持多屏异显功能,可满足智能安防、工业控制等领域的多屏显示需求。文章从硬件连接、设备树配置、内核驱动设置到显示参数调整,系统阐述了配置流程,并针对信号不稳定、显示模式不匹配等常见问题提供了解决方案。通过智能安防监控案例,展示了该技术在提高监控效率方面的实际应用价值。随着技术进步,RK3588多屏异显技术将在更多领域发挥重要作用,为开发者提供灵活多样的显示方案

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2434

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JfreeChart 散点图

用JfreeChart画散点图  首先,看画图的API,参数有: ChartFactory.createScatterPlot(),其中,有一个xydataset,那么,我们先要知道这个xydataset是什么结构的,再看所需xydataset,散点图,也就是单独画出点,也就是一个二维数据了,x ,y坐标嘛! 那么,先做好准备工作,第一步,拿数据,这就不用啰嗦了,就是得到一个List也好,S

Devil不加V 4208

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JFreeChart的总结

因为之前在工作中用到了Echarts这个非常简单易用的图表插件,所以这段时间对图表的相关知识很感兴趣。回想到自己的毕业设计中也用到了图表的显示,当时使用的是JFreeChart,现在看看当时做的真的是不堪入目,虽然功能完成了,但是生成的图表实在是不忍直视。

Earl_yuan的专栏 3373

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jfreechart java配置_JFREECHART环境安装配置

[环境:操作系统Centos 7 64-bit3台节点ip 主机名 10.91.99.101 master10.91.99.102 slave110.91.99.103 slave210.91.99.104 slave3 三个节点上已经布署好had本次安装环境如下:JDK:j2sdk-1_4_2_13文件名:j2sdk-1_4_2_13-windows-i586-p.ex...

weixin_32737183的博客 800

jFreeChart初探

//**************************************

小李专栏 4420

JFreeChart在webwork中的应用

前言:webwork是当今流行的J2EE几大架构之一,在实际的项目中,我们往往要在webwork的输出流中调用一个图表chart,代替直接用response.out输出。那么我们应该怎么样去实现呢?本文将详细阐述JFreeChart在webwork中的应用。本文调试环境为windows2000+tomcat5.0。共分三个部分:1,JFreeChart 简介 2,webwork简介及webwork

键者天行 6540

JFreeChart 的几则应用之jsp篇。

配置一个serverlet然后调用jFreeChart的一个类。之间需要的jar包包括: jfreechart-1.0.5.jarjcommon-1.0.9.jargnujaxp.jar这些开源jar包和JDOC在jfree的主站就能下载得到:http://www.jfree.org/index.php但是,这个的帮助文档却是收费的所以一些相关的论坛和比较好的实例网站需要提供两个:ht

Jimmybly Lee 的专栏 1685

关于JFreeChart的standardlegend类找不到的解决办法

昨天搞了一天,没解决JFREECHART中文的问题,大家说的都是LINUX的,一般说是字体不支持我找了一些高手收集的中文API里面有几个设置字体的类如下:TextTitle类:void setFont(Font font)     标题字体StandardLegend(Legend)类:void setTitleFont(Font font)    图示标题字体Axis类:

For_suzhen的专栏 3753

【Java图表绘制-JFreeChart】

一些常用的支持 Java 的图表类库 JopenChart JopenChart 是一个开放源代码的Java库,它还是一个可以用来创建不同种类图表并且将它们内嵌到web或者Swing应用程序中的工具。它甚至还能够支持插入数据和绘制数学函数。 项目主页: http://jopenchart.sourceforge.net/ ChartDirector ChartDirector控件使用

Max一直在学习 4902

JFreeChart 实例

一、简介 WW 的发展使得基于因特网的应用程序不再局限于静态或者简单的动态内容提供。传统的一些以软件包形式发布应用程序例如报表系统等都在逐渐搬到因特网上。但是这两者之间有着天壤之别,虽然对于数据获取、业务处理等方面基本类似,但是最大的差别在于用户界面。为了能在web浏览器上显示要求用户界面使用 HTML以及图片的方式来展现数据,而传统的一些利用操作系统本身的控件来开发的用户界面无法适应琳琅满目的客

天涯石头的专栏 1075
上一篇: myeclipse案例
下一篇: JSP显示饼状图
罗文付
博客等级 码龄12年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值