/**
 * 
 */
package com.struts2.jfreechart;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;/**
 * @author 谌纪超
 * 
 */
public class JFreeChartDemo { /**
 * @param args
 */
public static void main(String[] args) { // 生成饼图的数据集对象
DefaultPieDataset dpd = new DefaultPieDataset(); // 向数据集中添加数据
dpd.setValue("计算机网络", 36);
dpd.setValue("计算机应用", 43);
dpd.setValue("计算机多媒体", 60);
dpd.setValue("计算机智能", 27); // 创建饼图
JFreeChart chart = ChartFactory.createPieChart("某学校信息工程系各个专业的人数比例",
dpd, true, true, false); // 创建一个Swing框架
ChartFrame frame = new ChartFrame("清华大学", chart); // 设置框架的自适应大小
frame.pack(); // 设置可见
frame.setVisible(true); }}

解决方案 »

  1.   

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartFrame;
    import org.jfree.chart.JFreeChart;
    import org.jfree.data.general.DefaultPieDataset;
    import org.jfree.chart.plot.PiePlot;
    import java.awt.Font;/**
     * @author 谌纪超
     *
     */
    public class JFreeChartDemo { /**
     * @param args
     */
    public static void main(String[] args) { // 生成饼图的数据集对象
    DefaultPieDataset dpd = new DefaultPieDataset(); // 向数据集中添加数据
    dpd.setValue("计算机网络", 36);
    dpd.setValue("计算机应用", 43);
    dpd.setValue("计算机多媒体", 60);
    dpd.setValue("计算机智能", 27); // 创建饼图
    JFreeChart chart = ChartFactory.createPieChart("某学校信息工程系各个专业的人数比例",
       dpd, true, true, false);

                    Font font = new Font("SimSun", 10, 20);
                    chart.getTitle().setFont(font);
    chart.getLegend().setItemFont(font);
    ((PiePlot)chart.getPlot()).setLabelFont(font); // 创建一个Swing框架
    ChartFrame frame = new ChartFrame("清华大学", chart); // 设置框架的自适应大小
    frame.pack(); // 设置可见
    frame.setVisible(true); }}
      

  2.   

    什么地方出现乱码呀。一次JAVA中中文出现乱码。直接把中文换成unicode编码就应该没问题
      

  3.   

    他不是SWING出现的乱码
    是他应用JFREECHART时候出现的乱码
    肯定在他的饼图显示的时候有~~
      

  4.   

    再说,在搜索引擎搜一下 jfreechart 中文乱码 也不是有什么难度的事情
      

  5.   

    设置下饼图字体显示
    JFreeChart chart = ChartFactory.createPieChart3D(chartTitle, // chart
    // title
    dataset,// data
    true,// include legend
    true, false);
    //设置上标题
    chart.getTitle().setFont(new Font("黑体", Font.PLAIN, 20));

    //设置下标题
    chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));