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)
答案 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年)。你显然是在稍后使用它。
为什么不为文件付出一些钱,显然这些文件包含了许多最新的例子?这样你就可以帮助支持未来的发展。