Button Anylogic,如何设置一个按钮,以便重新启动模拟
你好, 目前,有6个编辑框,它们连接到模型中的特定参数(用户可以在模型运行时编辑这些框)和一个不做任何事情的按钮。我想使用此按钮重新启动模拟,但是如果用户以前更改了编辑框中的某些内容,则新模拟将基于用户输入值运行。模型名为“模拟”。Button Anylogic,如何设置一个按钮,以便重新启动模拟,button,simulation,anylogic,Button,Simulation,Anylogic,你好, 目前,有6个编辑框,它们连接到模型中的特定参数(用户可以在模型运行时编辑这些框)和一个不做任何事情的按钮。我想使用此按钮重新启动模拟,但是如果用户以前更改了编辑框中的某些内容,则新模拟将基于用户输入值运行。模型名为“模拟”。 如果有人知道一个示例(或特定代码),我们将不胜感激。要澄清,有两个问题: 如何使模型中的按钮重新启动模拟?-这是不可能的。但是可以做的是有一个按钮调用stopSimulation(),并将用户返回到模拟设置中 如何在运行时将模型中所做的更改传播到下一次模拟运行将编辑
如果有人知道一个示例(或特定代码),我们将不胜感激。要澄清,有两个问题:
stopSimulation()
,并将用户返回到模拟设置中root
对象,在模拟运行后的Java操作中访问这些值
对Artem关于问题1的回复进行补充:这实际上是可能的,但您将创建一个新线程,所以有点高级。此代码将停止当前实验并重新启动它:
new Thread() {
public void run() {
getExperiment().stop(); // stops the model
getExperiment().run(); // runs it again
getExperimentHost().setPresentable( getEngine().getRoot() );
}
}.start();
如Artem所述,您可以确保为新运行设置参数
PS:最好是简单地让用户按下停止按钮,将值输入到实验页面,如果需要,让用户重新调整,并让她像往常一样重新启动模型