您的位置:首页 > 其它

jfreeChart中文显示为方框解决办法

2010-09-28 18:55 507 查看
最近刚刚学习jfreeChart,照着书上弄了下,但是中文的部分总是显示为一个个的方框,郁闷了很久,因为我和书上做的一模一样,但是就是显示不出中文,后来在网上看到,很多人说这是由于jfreeChart的版本原因造成的,早期的版本可以正常显示中文,我用的是jfreeChart 1.0.13,因为嫌麻烦,我又不想再去找以前的版本,于是继续在网上搜索,终于在网络中各位高人的指点之下,基本上解决了这个问题,现在贴出来和大家分享下。大家只需要在程序中添加如下代码就可以了,细心的读者应该可以发现,究其根本,就是一个设置字体的问题。我觉得应该有一个终极的解决办法的,但是因为对java和jfreeChart都不是很熟,所以没弄出来,如果有哪位大侠知道,请不吝赐教!

1.柱状图

jFreeChart.getTitle().setFont(new Font("隶书", Font.ITALIC, 15));//设置标题
//设置图例类别字体
jFreeChart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));

jFreeChart.setBackgroundPaint(Color.WHITE);
CategoryPlot categoryPlot=jFreeChart.getCategoryPlot();//用于设置显示特性
categoryPlot.setBackgroundPaint(Color.WHITE);
categoryPlot.setDomainGridlinePaint(Color.BLACK);//分类轴网格线条颜色
categoryPlot.setDomainGridlinesVisible(true);
categoryPlot.setRangeGridlinePaint(Color.GREEN);//数据轴网格线条颜色

CategoryAxis domainAxis=categoryPlot.getDomainAxis(); //水平底部列表
domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14)); //水平底部标题
domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12)); //垂直标题
ValueAxis rangeAxis=categoryPlot.getRangeAxis();//获取柱状
rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15)); //设置柱状标题


2.折线图

Font titleFont=new Font("隶书", Font.ITALIC, 18);
Font font=new Font("宋体",Font.BOLD,12);
Font legendFont=new Font("宋体", Font.BOLD, 15);

jFreeChart.getTitle().setFont(titleFont);
jFreeChart.getLegend().setItemFont(legendFont);

CategoryPlot plot=jFreeChart.getCategoryPlot();
plot.getDomainAxis().setLabelFont(font);
plot.getDomainAxis().setTickLabelFont(font);
plot.getRangeAxis().setLabelFont(font);


3.饼状图

Font titleFont=new Font("隶书", Font.ITALIC, 18);
Font font=new Font("宋体",Font.BOLD,12);
Font legendFont=new Font("宋体", Font.BOLD, 15);

jFreeChart.getTitle().setFont(titleFont);
jFreeChart.getLegend().setItemFont(legendFont);

PiePlot plot=(PiePlot)jFreeChart.getPlot();
plot.setLabelFont(font);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: