Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jfreechart图形生成_Java_Charts_Jfreechart_Pie Chart - Fatal编程技术网

Java Jfreechart图形生成

Java Jfreechart图形生成,java,charts,jfreechart,pie-chart,Java,Charts,Jfreechart,Pie Chart,我正试图从现有的应用程序生成一个piechart,但出现了错误。 最新的错误是: efa.util.chart.ChartUtil中的createPieChart(java.lang.String,org.jfree.data.general.PieDataset,org.jfree.chart.labels.PieSectionLabelGenerator)不能应用于(java.lang.String,org.jfree.data.general.PieDataset) [javac]sect

我正试图从现有的应用程序生成一个piechart,但出现了错误。 最新的错误是:

efa.util.chart.ChartUtil中的createPieChart(java.lang.String,org.jfree.data.general.PieDataset,org.jfree.chart.labels.PieSectionLabelGenerator)不能应用于(java.lang.String,org.jfree.data.general.PieDataset) [javac]sectorChart=ChartUtil.createPieChart(“,xy); [javac]^

除此之外,我还需要在函数调用中添加第三个参数,即PieSectionLabelGenerator labelGenerator。然而,我不知道怎么做。已阅读文档/api,但仍不确定。你有什么建议

我使用的代码是

imports (please see below)
declaration in the code is JFreeChart sectorChart;

the function: 

private void genChart(){
  DefaultPieDataset pieDataset = new DefaultPieDataset();
  pieDataset.setValue("JavaWorld", new Integer(75));
  pieDataset.setValue("Other", new Integer(25));

  PieDataset xy = pieDataset;
  sectorChart = ChartUtil.createPieChart("",xy,);
}
我不认为我的进口产品有什么问题,也不认为申报的物品有什么问题。请让我知道,若你们想看这些,我将把它们删掉,以便于这篇文章的简短

我无法让下面的答案适用于我的应用程序。但是我在ChartUtil.java文件中有这段代码

public static JFreeChart createPieChart(final String title,
            final PieDataset dataset, PieSectionLabelGenerator labelGenerator) {

        final JFreeChart chart = ChartFactory.createPieChart(title, dataset,
                false, true, true);

        labelGenerator = labelGenerator != null ? labelGenerator
                : new StandardPieSectionLabelGenerator("{2} {0}",
                        NumberFormat.getNumberInstance(),
                        NumberFormat.getPercentInstance());

        PiePlot plot = (PiePlot) chart.getPlot();
        ChartUtil.formatPiePlot(plot);
        plot.setLabelGenerator(labelGenerator);

        PieRenderer renderer = new PieRenderer();
        renderer.setColor((PiePlot) chart.getPlot(), dataset);

        return chart;

    }
我认为我们需要找出如何将PieSectionLabelGenerator作为参数传递到函数中…

关于您的编辑:

有一个类实现了您需要的接口,即StandardPieSectionLabelGenerator,当传递给您的方法时,它应该允许创建图表。另一种方法是创建一个类来自己实现该方法。我认为这完全取决于你想通过标签实现什么

public class SO {
public static void main(String[] args){
      DefaultPieDataset pieDataset = new DefaultPieDataset();
      pieDataset.setValue("JavaWorld", new Integer(75));
      pieDataset.setValue("Other", new Integer(25));

      JFreeChart chart = SO.createPieChart("Pie", pieDataset, new StandardPieSectionLabelGenerator());
      JFrame frame = new JFrame("Pie");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.add(new ChartPanel(chart));
      frame.pack();
      RefineryUtilities.centerFrameOnScreen(frame);
      frame.setVisible(true);
}

public static JFreeChart createPieChart(final String title,
        final PieDataset dataset, PieSectionLabelGenerator labelGenerator) {

    final JFreeChart chart = ChartFactory.createPieChart(title, dataset, false, true, true);
    PiePlot plot = (PiePlot) chart.getPlot();
    ChartUtil.formatPiePlot(plot);
    plot.setLabelGenerator(labelGenerator);
    PieRenderer renderer = new PieRenderer();
    renderer.setColor((PiePlot) chart.getPlot(), dataset);
    return chart;
}
}

如果只为labelGenerator传递null,那么代码(不是JFreeChart的一部分)将为您创建标签生成器。