JFreeChart将数组加载到数据集中

时间:2012-05-07 08:09:03

标签: java arrays for-loop jfreechart

我无法通过简单的for循环将数组加载到JFreeChart的DataSet中。例如,这将完美无缺:

    private  PieDataset createDataset() {
    DefaultPieDataset result = new DefaultPieDataset();     

    result.setValue("Linux", 29);
    result.setValue("Mac", 20);
    result.setValue("Windows", 51);

    return result;

}

但是,如果我尝试通过循环遍历数组的每个元素来实现上面的代码,那么它将不起作用:

    private  PieDataset createDataset() {
    DefaultPieDataset result = new DefaultPieDataset();
    int[] array1 = new int[]{29,20,51};
    char[] array2 = new char[]{"Linux", "Mac", "Windows"};

    for (int i = 0; i < 3; i++) {
        result.setValue(array2[i], array1[i]);
    }
    return result;

}

知道我哪里出错了?

1 个答案:

答案 0 :(得分:1)

signature for DefaultPieDataset.setValue() is

setValue(java.lang.Comparable key, double value)

所以我认为一个字符数组不允许在所述数组中使用“Comparable”值 String数组可能String实现Comparable接口,这就是您的第一个示例正在运行的原因。)