铸造错误

时间:2011-07-25 07:30:27

标签: java

public class xyArea{
public static void main(String arg[]){
  XYSeries series = new XYSeries("Average Weight");
  series.add(20.0, 20.0);
  series.add(40.0, 25.0);
  series.add(55.0, 50.0);
  series.add(70.0, 65.0);
  XYDataset xyDataset = new XYSeriesCollection(series);
  JFreeChart chart = ChartFactory.createAreaChart
  ("XY Chart using JFreeChart", "Age", "Weight",
   (CategoryDataset) xyDataset, PlotOrientation.VERTICAL, true, 
  true, false);
  ChartFrame frame1=new ChartFrame("XYArea Chart",chart);
  frame1.setVisible(true);
  frame1.setSize(300,300);
  }
}

我写了这段代码但是下面的错误发生了请指导我:

线程“main”中的异常java.lang.ClassCastException:org.jfree.data.xy.XYSeriesCollection无法强制转换为org.jfree.data.CategoryDataset     在xyArea.main(xyArea.java:21)

2 个答案:

答案 0 :(得分:4)

好吧,你不能转发CategoryDataset,因为XYSeriesCollection不是CategoryDataset

您似乎需要.createXYAreaChart(..)(而不是.createAreaChart(..)

答案 1 :(得分:1)

  

但我的所有搜索Jfreechart示例代码都是这样的,如果不是没有投出另一个错误正在发生。

样本/示例不正确,或者您误解了它们。请发布您正在谈论的样本/示例的链接,以便有人可以给您更有帮助的答案。


JFreeChart chart = ChartFactory.createAreaChart ("XY Chart using JFreeChart", 
    "Age", "Weight", xyDataset, PlotOrientation.VERTICAL, true, true, false);

如果这应该是其中一个示例,我怀疑问题是该示例与您尝试使用的API版本不匹配。根据{{​​3}}的最新版本,createAreaChart根本不会使用XYDataset参数,而您尝试使用的实际类不是CategoryDataset

解决方案是找到一些与您正在使用的JFreeChart版本相匹配的示例代码。或者更好的是,阅读并理解JFreeChar javadocs,这样您就不必复制其他人的代码了!


“尖叫的企鹅”教程适用于jfreechart 1.0.0-pre1(大约2004年)。你显然是在稍后使用它。

为什么不为文件付出一些钱,显然这些文件包含了许多最新的例子?这样你就可以帮助支持未来的发展。