毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于jfreechart的动态数据可视化应用开发(13)
后来我发现ChartFrame是继承自javax.swing.JFrame的,也就是在JFrame上显示中文有问题。
Class ChartFrame
java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame javax.swing.JFrame org.jfree.chart.ChartFrame
后来我想到以前JAVA课程老师说到的改变font字体,于是我编译了如下的代码添加到ChartFactory.createPieChart之前:
standardChartTheme standardChartTheme=new StandardChartTheme("CN"); //设置标题字体
standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20)); //设置图例的字体
standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15)); //设置轴向的字体
standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15)); //应用主题样式
chartFactory.setChartTheme(standardChartTheme);
另一种极端的方法就是直接改jar包的源代码。比如源码中有setFont(new Font(xxx, Font.PLAIN, 18)); 把xxx改为宋体,我使用的JFreeChart的.jar包为1.0.14,太新的包对中文显示可能有问题,所以最好还是用更早的版本。
于是综合所有办法,采用换包(使用1.0.10)与设置font的方法重新写了一个程序直接将图片生成到本地磁盘。
package org.test.jfreechart;
import java.awt.Font;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.general.DefaultPieDataset;
public class JFreeChartTest3 {
public static DefaultPieDataset getDataset(){
DefaultPieDataset dataset = new DefaultPieDataset();
dpd.setValue("管理人员", 25); //输入数据
dpd.setValue("市场人员", 25);
dpd.setValue("开发人员", 45);
dpd.setValue("其他人员", 10);
JFreeChart jfree = ChartFactory.createPieChart("某公司人员组织数据图",dpt,true,true,false);
ChartFrame cf = new ChartFrame("某公司人员组织数据图",jfree);
cf.pack();
cf.setVisible(true);
}
}
public static void main(String []args){
JFreeChart chart = ChartFactory.createPieChart("某公司人员组织结构图",getDataset(),true,true,true);
Font font = new Font("SimSun",10,20);
chart.getTitle().setFont(font);
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(font);
PiePlot plot = (PiePlot)chart.getPlot();
plot.setLabelFont(font);
try {
OutputStream out = new FileOutputStream("com.jpeg");
try {
ChartUtilities.writeChartAsEG(out,chart,500,400);out.close();
} catch (IOException e) {e.printStackTrace();}
} catch (FileNotFoundException e) {
e.printStackTrace();
}}}
经过修改后,终于解决了乱码,图片显示如下:
图4.14 正确的输出结果
终于,中文显示正常,问题解决。同样将JFreeChart应用到JSP页面中,也能正常显示,无任何问题。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset" %>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
共14页:
上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
下一页
上一篇:
《Premiere视频制作》教学网站设计与实现
下一篇:
C#条码仓库管理系统的设计与开发—统计、报表模块
Android手机考勤平台的设计与实现
基于android的环境信息管理系统设计
java+mysql班级评优系统的设计实现
Python+mysql宠物领养平台的设计与实现
ASP.NET飞翔租贷汽车公司信...
基于激光超声检测金属材...
多频激励下典型非线性系统的振动特性研究
AES算法GPU协处理下分组加...
酵母菌发酵生产天然香料...
压疮高危人群的标准化中...
浅谈高校行政管理人员的...
从政策角度谈黑龙江對俄...
STC89C52单片机NRF24L01的无线病房呼叫系统设计
基于Joomla平台的计算机学院网站设计与开发
浅论职工思想政治工作茬...
上海居民的社会参与研究
提高教育质量,构建大學生...