解决:FreeChart图形中文乱码问题
2017-08-28 21:22
218 查看
在使用FreeChart作图时,如果直接使用中文,会导致出现乱码,原因在于FreeChart为外国文所写,其默认字体并不包含中文。
以简单的饼状图为例。
首先看没有进行中文字体处理的效果:
![](http://img.blog.csdn.net/20170831184909011?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSGFpeWFuZ19EdWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
再来看看进行处理后的效果:
以简单的饼状图为例。
首先看没有进行中文字体处理的效果:
package SWing; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; class FreeChartDemo{ private PieDataset getPieDataset(){ DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("高中生", 800); dataset.setValue("本科生", 300); dataset.setValue("研究生", 200); dataset.setValue("博士生", 100); return dataset; } public JFreeChart getFreeChart(){ PieDataset dataset = getPieDataset(); JFreeChart freeChart = ChartFactory.createPieChart("学位授予", dataset, true, true, false); return freeChart; } } public class PieChart { public static void main(String[] args) { FreeChartDemo freeChartDemo = new FreeChartDemo(); JFreeChart chart = freeChartDemo.getFreeChart(); ChartFrame frame = new ChartFrame("饼状图", chart); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
再来看看进行处理后的效果:
package SWing; import java.awt.Font; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PiePlot; import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; class FreeChartDemo{ private PieDataset getPieDataset(){ DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("高中生", 800); dataset.setValue("本科生", 300); dataset.setValue("研究生", 200); dataset.setValue("博士生", 100); return dataset; } public JFreeChart getFreeChart(){ PieDataset dataset = getPieDataset(); JFreeChart freeChart = ChartFactory.createPieChart("学位授予", dataset, true, true, false); return freeChart; } //在此处设置字体 public void setPieChartFont(JFreeChart freeChart){ PiePlot pieChart = (PiePlot) freeChart.getPlot(); pieChart.setLabelFont(new Font("宋体", Font.BOLD, 20)); TextTitle textTitle = freeChart.getTitle(); textTitle.setFont(new Font("宋体", Font.ITALIC, 25)); LegendTitle legendTitle = freeChart.getLegend(); legendTitle.setItemFont(new Font("宋体", Font.BOLD+Font.ITALIC, 10)); } } public class PieChart { public static void main(String[] args) { FreeChartDemo freeChartDemo = new FreeChartDemo(); JFreeChart chart = freeChartDemo.getFreeChart(); freeChartDemo.setPieChartFont(chart); ChartFrame frame = new ChartFrame("饼状图", chart); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
相关文章推荐
- 解决在Linux6.1下安装Oracle-11g-R2时的中文乱码问题-(图形安装过程中)
- ]解决JBPM图形流程设计器的gpd.xml文件的中文乱码问题
- 关于LaTeX + LyX + R/Sweave + pgfSweave + PDF图形的若干中文问题(使用knitr画图时中文乱码解决)
- Java/JSP中文乱码问题解决心得
- Java/JSP中文乱码问题解决心得
- 解决IntelliJ IDEA控制台中文乱码问题
- JSP中文乱码问题解决方法小结
- 如何解决 Ubuntu 中文乱码问题——文本、MP3和Rar压缩文件及aMule
- JpGraph中文乱码问题解决
- jquery获取URL中参数,解决中文乱码问题
- 解决openfire在使用MySQL数据库后的中文乱码问题
- spring mvc 响应中文乱码问题的解决
- Python解决中文乱码问题
- Java中文乱码问题分析及解决办法
- JSP、AJax中文乱码问题解决,escape(), encodeURI(), encodeURIComponent(),js对参数连续两次调用 encodeURI(String) 方法
- PHP - 解决中文乱码问题
- 解决Java中URL传递中文参数时出现乱码的问题
- struts2中文乱码问题解决
- 如何解决eclipse显示中文乱码问题?
- asp.net页面通过URL参数传值中文乱码问题解决办法