Button Anylogic,如何设置一个按钮,以便重新启动模拟

Button Anylogic,如何设置一个按钮,以便重新启动模拟,button,simulation,anylogic,Button,Simulation,Anylogic,你好, 目前,有6个编辑框,它们连接到模型中的特定参数(用户可以在模型运行时编辑这些框)和一个不做任何事情的按钮。我想使用此按钮重新启动模拟,但是如果用户以前更改了编辑框中的某些内容,则新模拟将基于用户输入值运行。模型名为“模拟”。 如果有人知道一个示例(或特定代码),我们将不胜感激。要澄清,有两个问题: 如何使模型中的按钮重新启动模拟?-这是不可能的。但是可以做的是有一个按钮调用stopSimulation(),并将用户返回到模拟设置中 如何在运行时将模型中所做的更改传播到下一次模拟运行将编辑

你好, 目前,有6个编辑框,它们连接到模型中的特定参数(用户可以在模型运行时编辑这些框)和一个不做任何事情的按钮。我想使用此按钮重新启动模拟,但是如果用户以前更改了编辑框中的某些内容,则新模拟将基于用户输入值运行。模型名为“模拟”。
如果有人知道一个示例(或特定代码),我们将不胜感激。

要澄清,有两个问题:

  • 如何使模型中的按钮重新启动模拟?-这是不可能的。但是可以做的是有一个按钮调用
    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:最好是简单地让用户按下停止按钮,将值输入到实验页面,如果需要,让用户重新调整,并让她像往常一样重新启动模型