【问题标题】:A way to use 'on click' twice in AnyLogic在 AnyLogic 中使用“点击”两次的方法
【发布时间】:2021-02-11 20:19:28
【问题描述】:

我在主代理中有 4 个矩形,分别代表不同的站点(位置)。这些站点分别具有与它们相关的信息,并且在组合时,它们的值也被组合在一起。目前,我的模型正在列出所有可能的组合,即 1 和 2; 1、2和3; 1 和 3 等。我的目标是自己选择组合,而不是生成所有组合。

我目前正在使用“点击时”将模型带到单独的视图区域。我想要的是单击这些矩形进行组合,但我担心如果我使用“单击时”它会与视图区域发生冲突。这两个都可以吗?

谢谢

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    我建议您利用 Controls 调色板,它包含所有 GUI 元素。

    您的问题没有一个真正的答案。这将是您设计用户界面的选择。例如,您可以在每个站点的角落添加一个按钮,该按钮会将您带到查看区域,而不是使用 on click,并使用 on click 来初始选择多个站点。

    或者,您可以在屏幕顶部添加两个单选按钮,一个用于单击以选择多个站点,另一个用于在视图区域之间切换。这些按钮将链接到一个变量,该变量的值将在 0 和 1 之间变化,具体取决于最后单击的按钮。在这种情况下,on click 中的代码可能是一个条件语句,例如:

    if( variable == 0 )
    viewArea.navigateTo();
    
    else
    < code to add site to selection >
    

    最后,如果您确实需要使用两次on click,最好的方法是创建一个名为count 的变量,例如int 类型。并在on click 字段中,使其值在第一次单击时增加1。与上面的代码类似,添加一个 if 语句,根据该语句,您第二次单击将取决于该变量。例如:

    if( count == 0 )
    {
      < code to add site to selection >;
      count++;
    }
    
    else
    viewArea.navigateTo();
    

    这样,第一次点击将允许您选择网站,第二次点击会将您导航到那里。

    我知道这不是一个直截了当的答案,但可以从多个角度来解决这个问题。这至少应该给你一些想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多