在ZK中报表是对jfreechart的改进,但是对中文的支持不好。有中文乱码.
eg:
charView.setTitle("报表统计");
会出现乱码,解决方法如下:
1.添加类:
package cn.ffcs.cloud.zk.service; import org.zkoss.zkex.zul.impl.JFreeChartEngine; import org.zkoss.zul.Chart; import java.awt.Font; public class ChartEngine extends JFreeChartEngine{ public boolean prepareJFreeChart (org.jfree.chart.JFreeChart jfchart, Chart chart) { Font titleFont = new Font("宋体", Font.BOLD , 18); Font legendFont = new Font("黑体", Font.PLAIN ,12); Font axisFont = new Font("隶书", Font.PLAIN,12); jfchart.getTitle().setFont (titleFont); jfchart.getLegend().setItemFont (legendFont); jfchart.getLegend().setVisible (true); jfchart.getCategoryPlot().getDomainAxis().setTickLabelFont (axisFont); jfchart.getCategoryPlot().getRangeAxis().setTickLabelFont (axisFont); jfchart.getCategoryPlot().getDomainAxis().setLabelFont (axisFont); jfchart.getCategoryPlot().getRangeAxis().setLabelFont (axisFont); return false; } }
2. Engine添加到Chart中
// 中文乱码问题解决 charView.setEngine(new ChartEngine()); charView.setTitle("报表统计");