jfreechart画图是,用的是org.jfree.data.time.Hour,总是出错!??:(

汇科天下 2005-07-17 08:15:34
jfreechart画图是,用的是org.jfree.data.time.Hour,总是出错!??:(


我用的是jfreechart-1.0.0-rc1和jcommon-1.0.0-rc1,从网上写的原代码生成的jar 文件和文档

我使用org.jfree.data.time.Day一切都是正常.
当我以小时为单位来画图的时候,将对应的org.jfree.data.time.Day改为org.jfree.data.time.Hour却在运行的时候报错:
org.jfree.data.general.SeriesException: You are trying to add data where the time period class is org.jfree.data.time.Hour, but the TimeSeries is expecting an instance of org.jfree.data.time.Day.
org.jfree.data.time.TimeSeries.add(TimeSeries.java:467)
com.cellcom.business.ServletHourHelp.getData(ServletHourHelp.java:150)
com.cellcom.business.ServletHourHelp.createTimeSeriesChart(ServletHourHelp.java:101)
com.cellcom.servlet.IvrBussEmployHourServlet.service(IvrBussEmployHourServlet.java:65)

不明白其实原因!求我!!!!
==================================================================================
以下是相应代码:
public HashMap getData(ServletRequest req) {

ArrayList[] servs = null;

BussEmployQuery query = new BussEmployQuery();
HashMap hashMapServs = query.getBussHourEmploy(req);

HashMap servIdMap = (HashMap) hashMapServs.get("info");
HashMap servsMap = (HashMap) hashMapServs.get("servsDataMap");

Iterator it = servIdMap.keySet().iterator();
TimeSeriesCollection result = new TimeSeriesCollection();
for (; it.hasNext(); ) { //取一个业务
String servId = (String) it.next();
String servName = (String) servIdMap.get(servId);

TimeSeries servEmploys = new TimeSeries(servName);
ArrayList dataList = (ArrayList) servsMap.get(servId);
for (int k = 0; k < dataList.size(); k++) {

IvrBussEmploy employ = (IvrBussEmploy) dataList.get(k);

servEmploys.add(new TimeSeriesDataItem(new Hour(employ.getHour(),employ.getDay(),employ.getMonth(),employ.getYear()), employ.getAccount()));//////////此处报错,

}
result.addSeries(servEmploys);
}
servsMap.put("data", result);
return servsMap;
}

...全文
491 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
汇科天下 2005-07-18
  • 打赏
  • 举报
回复
好了,问题已经得到了解决,

TimeSeries类在构造的时候,可以指定时间的刻度,如果不指定,就默认为Day.

在此类中,生成TimeSeries类是,写为
TimeSeries servEmploys = new TimeSeries(servName,Hour.class);

即可!!!!
汇科天下 2005-07-18
  • 打赏
  • 举报
回复
public TimeSeriesDataItem(RegularTimePeriod period, Number value) { }

TimeSeries.add(TimeSeriesDataItem item)

这是所用到的两个方法,当TimeSeriesDataItem ()生成以Day的序列的数据是,一切正常,而当生成以Hour为序列的时候却出现了错误.
而Hour和Day类都是
java.lang.Object
|
+--org.jfree.data.time.RegularTimePeriod
|
+--org.jfree.data.time.Hour

java.lang.Object
|
+--org.jfree.data.time.RegularTimePeriod
|
+--org.jfree.data.time.Day

出现以上的异常,实在不明白是什么原因.
文档也没有说明Hour和Day有什么用法的区别


weicairong 2005-07-17
  • 打赏
  • 举报
回复
型别改变时发生的错误
内容概要:本文介绍了一种基于双层优化的微电网系统规划设计方法,旨在通过Matlab代码实现,解决微电网在规划与运行中的多目标、多层次决策问题。该方法将优化过程分为上下两层:上层通常负责容量配置、设备选址等长期规划决策,下层则聚焦于能量管理、出力调度等短期运行优化,通过迭代交互实现全局最优。文中详细阐述了模型构建、约束条件设定、目标函数设计及求解算法实现流程,并提供了完整的Matlab代码供复现实验,有助于深入理解微电网系统的设计逻辑与优化机制。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源、微电网、综合能源系统等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习和掌握双层优化理论在微电网规划设计中的具体应用;② 通过阅读和运行Matlab代码,复现并改进经典优化模型,用于学位论文、科研项目或实际工程方案设计;③ 深入理解微电网中分布式能源、储能与负荷的协同优化调度策略。; 阅读建议:此资源以Matlab代码实现为核心,强调理论与实践的结合。建议读者先理解双层优化的基本思想和数学模型,再结合代码逐行分析,重点关注变量定义、约束条件的代码转化以及主从问题间的迭代逻辑。鼓励在提供的代码基础上进行参数调整、场景扩展或算法改进,以深化学习效果。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧