JFreeChart 实现无乱码的柱状图和饼状图实例



JFreeChart 是一个开源的 Java 图形库,用于创建高质量的图表,包括柱状图、饼状图等多种类型的图表。在 Java 开发中,尤其是在 Web 应用中,使用 JFreeChart 可以方便地在 JSP 页面上展示数据可视化。然而,由于编码问题,可能会出现中文乱码的情况。下面我们将详细探讨如何使用 JFreeChart 实现无乱码的柱状图和饼状图,并在 JSP 页面中正确显示。 要解决中文乱码问题,我们需要确保所有环节的编码设置正确。这包括项目的源代码编码、JSP 页面编码以及 JFreeChart 的配置。通常,推荐使用 UTF-8 编码,因为它支持广泛的字符集,包括中文字符。 1. **源代码编码**:确保你的 IDE(如 IntelliJ IDEA 或 Eclipse)的项目编码设置为 UTF-8。这可以通过 IDE 的项目设置或者全局设置进行调整。 2. **JSP 页面编码**:在 JSP 文件头部添加以下声明来指定页面的编码: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> ``` 3. **JFreeChart 设置**:在创建 `ChartFactory` 时,需要设置字体和编码。例如,创建柱状图时: ```java CategoryDataset dataset = createDataset(); // 创建数据集 JFreeChart chart = ChartFactory.createBarChart( "中文标题", // 标题,注意这里使用中文 "类别", // 分类轴标签 "值", // 值轴标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 柱状图方向 true, // 是否包含图例 true, // 是否包含工具提示 false // 是否包含 URLs ); // 设置字体和编码 Font font = new Font("宋体", Font.PLAIN, 12); // 使用支持中文的字体 chart.getTitle().setFont(font); CategoryAxis categoryAxis = chart.getCategoryPlot().getDomainAxis(); categoryAxis.setTickLabelFont(font); ValueAxis valueAxis = chart.getCategoryPlot().getRangeAxis(); valueAxis.setTickLabelFont(font); ``` 同理,创建饼状图时,也需要类似设置: ```java PieDataset dataset = createPieDataset(); // 创建数据集 JFreeChart chart = ChartFactory.createPieChart( "中文标题", // 标题 dataset, // 数据集 true, // 是否包含图例 true, // 是否包含工具提示 false // 是否包含 URLs ); // 设置字体和编码 chart.getTitle().setFont(font); PiePlot plot = (PiePlot) chart.getPlot(); plot.setSectionLabelFont(font); ``` 4. **在 JSP 中显示图表**:生成图表的图像流后,将其写入到 HTTP 响应中。在 JSP 页面中,可以使用 `Servlet` 或 `Filter` 处理这个过程。创建一个 Servlet 来生成图表的 `BufferedImage`,然后将其转换为 `byte[]`,最后通过 `response.getOutputStream()` 写入到客户端。 ```java @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("image/png"); resp.setCharacterEncoding("UTF-8"); // 创建并配置图表 JFreeChart chart = ...; // 与上述代码相同 ChartUtilities.writeChartAsPNG(resp.getOutputStream(), chart, 500, 300); } ``` 通过以上步骤,你应该能够成功地在 JSP 页面上展示无乱码的 JFreeChart 柱状图和饼状图。记得在实际开发中,要根据项目需求调整图表的大小、颜色等样式,以达到最佳的视觉效果。同时,如果遇到其他编码问题,检查数据库连接、文件读写等环节的编码设置也是很重要的。


















































- 1

- hukun12022014-09-29也就是个画图的例子
- 狮子小鹿角2014-03-06不错,代码可以运行,能画图,就是画的图太难看现在这个技术感觉落后了。推荐另一个插件highcharts,json数据对接,画图可以动态显示孔凡俭2014-12-23这个是2012年的,现在画图我都不用这个啦
- 萧君2013-04-23是个不错的例子
- q4917967342013-04-15是个不错的例子,但是不知道怎么在jsp页面中画图,没有介绍啊

- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 光伏发电与电池储能系统中MPPT增量导纳法及双向Buck-Boost电路的Simulink仿真研究 光伏发电 详解
- 基于MATLAB的垂直泊车路径规划与回旋曲线优化技术 资料
- 工程师储罐计量指南.pdf
- Haas SL-20 操作手册.pdf
- 压缩空气储能与释能阶段模型的Simulink仿真及应用
- PFC3D岩块崩落及滑坡模拟命令解析与应用
- ACS5000水冷(第二代)用户手册.pdf
- 欧姆龙微型光电传感器选型指南.pdf
- FPF 系列 壓力流量傳感器 操作說明書.pdf
- 醴陵联洲电器有限公司软启动器 变频器产品选型手册.pdf
- ABAQUS三维岩石试样压裂仿真模拟技术解析及应用 岩石力学
- 车辆碰撞预警系统:TTC制动与安全距离计算模型及Prescan-Matlab联合应用 - TTC制动
- 铌酸锂基有源无源器件建模仿真:从一维光栅到电光调制器的技术解析
- 全桥LLC谐振变换器变频-移相混合控制仿真:实现ZVSZCS条件下的电压范围优化
- 智能家居组态王6.55脚本动画仿真与优化技巧 2024版
- 制动排空_V1.1.zip


