【问题标题】:Anylogic, how to setup a button so it would restart the simulationAnylogic,如何设置按钮以重新启动模拟
【发布时间】:2021-07-26 14:38:33
【问题描述】:

美好的一天, 目前,有 6 个编辑框,它们连接到模型中的特定参数(用户可以在模型运行时编辑这些框)和一个不做任何事情的按钮。我想让这个按钮重新开始模拟,但是如果用户之前更改了编辑框中的一些内容,新的模拟将根据用户输入的值运行。模型名称为 Simulation。 如果有人知道示例(或特定代码),将不胜感激。

【问题讨论】:

    标签: button simulation anylogic


    【解决方案1】:

    为了澄清,有两个问题:

    1. 如何让模型中的按钮重新开始模拟? - 这是不可能的。但是可以做的是有一个按钮调用stopSimulation() 并将用户返回到模拟设置
    2. 如何将运行时对模型所做的更改传播到下一次模拟运行? - 将编辑字段中的值保存到模型的内部属性中,然后通过检查 root 对象在 Simulation 的 After simulation run Java 操作中访问它们

    【讨论】:

      【解决方案2】:

      补充Artem对问题1的回复:实际上是可以的,但是您将创建一个新线程,所以有点高级。此代码将停止当前实验并重新启动它:

      new Thread() {
          public void run() {
              getExperiment().stop(); // stops the model
              getExperiment().run(); // runs it again
              getExperimentHost().setPresentable( getEngine().getRoot() );
          }
      }.start();
      

      您可以确保按照 Artem 所讨论的那样为新运行设置参数。

      PS:最好让用户简单地按下停止按钮,将值输入到实验页面,让用户在需要时重新调整它们并让她像往常一样重新启动模型。

      【讨论】:

        猜你喜欢
        • 2019-06-08
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 1970-01-01
        • 2021-07-21
        • 2016-11-28
        • 2021-10-30
        • 2014-11-22
        相关资源
        最近更新 更多