首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当模型暂停时,如何获得重新绘制自己的图表?

当模型暂停时,如何获得重新绘制自己的图表?
EN

Stack Overflow用户
提问于 2014-11-03 23:37:56
回答 3查看 556关注 0票数 2

我有一个时间堆栈图,它的数据集可以通过单击单选按钮来更改。当模型运行时,当单击单选按钮时,图表会立即更新其外观。然而,当模型暂停时,当单击单选按钮时,图表的区域变为空白;相反,图例会自动更新。如何手动强制图表区域重新绘制自己?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-04 09:24:35

当您暂停一个模型时,实际上只暂停了Anylogic的一部分。处理GUI的线程继续运行,这就是为什么您可以在模型中导航,同时暂停它。这也意味着,如果你试图在模拟暂停的时候更新图表的数据,外观就会刷新,但是--当你的数据在另一个暂停的线程中被更新时--它不会接收到这些数据。

如果您想暂停模拟,并且仍然能够切换图表中显示的数据,您可以查看机场示例模型。它通过调整宽度、高度、x和y,提供了一种在不同图表之间切换的好方法,使之可见/不可见,并调整宽度、高度、x和y。本质上,您可以将所需的所有图表完全重叠,然后使您当前感兴趣的图表可见。

如果您想以编程方式创建图表,在创建图表的基础上,例如使用new TimeStackChart(...),您还必须使用main.presenation.add(...)将其添加到顶级演示文稿组中。如果你不这样做,图表将永远不会出现在模型中,因为模型不会显示任何东西!要查找有关如何以编程方式创建图表的更多信息,请在Main中创建图表,然后在Java编辑器中打开Main。找到您创建的图表,查看它的构造函数(有很多参数!),并使用它作为您希望创建的图表的粗略模板。帮助文档将进一步理解您所看到的参数。

票数 2
EN

Stack Overflow用户

发布于 2014-11-04 06:30:20

你试过chart.refresh();方法了吗?还尝试使用agent.onChange()更新嵌入代理。

希望这有帮助

票数 0
EN

Stack Overflow用户

发布于 2015-01-15 00:28:18

我遇到了同样的问题,并想出了解决办法。

试试这个,我知道它在AnyLogic v7中起作用:

代码语言:javascript
复制
if (getEngine.getState() == getEngine().PAUSED ){

    dynChart.setSelectedItemIndices( new int[]{0} );

    dynChart.setSelectedItemIndices( null );

}

当暂停或结束时,我可以通过选择/取消选择一个图例项来手动刷新图表。我花了几个小时尝试API变体,但没有结果,所以我只是模拟了UI中实际工作的内容,并且它工作了。

我动态地生成一个文本项目作为图表标题,但我没有得到相同的运气,使文本刷新时,暂停时,就像图表。对那件有什么想法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26725273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档