Java学习笔记之JFreeChart 的乱码问题

来源:互联网 发布:水果老虎机源码 编辑:程序博客网 时间:2024/05/23 15:04

乱码原因:默认的标题字体是SansSerif,而很多中文系统中并没有这种字体.

解决方案:重新设置字体

===========饼图===================

//解决中文乱码问题
  chart.getTitle().setFont(new Font("宋体", Font.ITALIC, 16));
  //获取绘图区对象
  PiePlot plot = (PiePlot) chart.getPlot();
  //设置绘图区中标签的字体
  plot.setLabelFont(new Font("宋体", Font.ITALIC, 12));
  //解决图例部分的中文乱码问题
  chart.getLegend().setItemFont(new Font("宋体", Font.ITALIC, 12));
  //是指是否显示成圆形
  plot.setCircular(false);
  //设置前景色的透明度
  plot.setForegroundAlpha(0.7f);

=======柱状图=============================//解决变体乱码
  chart.getTitle().setFont(new Font("sans-serif", Font.PLAIN,18));
  //获取绘图区对象
  CategoryPlot plot = (CategoryPlot) chart.getPlot();
  //获取x轴对象
  CategoryAxis domainAxis = plot.getDomainAxis();
  //获取Y轴对象
  ValueAxis numberaxis = plot.getRangeAxis();
  //设置x轴坐标上的文字
  domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
  //设置x轴的标题文字
  domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
  //设置Y轴坐标上的文字
  numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
  //设置y轴的标题文字
  numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
  //解决底部汉字乱码问题
  chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));