首页 > 解决方案 > 在 AnyLogic 中使用“点击”两次的方法

问题描述

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

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

谢谢

标签: anylogic

解决方案


我建议您利用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 的变量,例如 type int。并在该on click字段中,使其值在第一次单击时增加 1。与上面的代码类似,添加一个 if 语句,根据该语句,您第二次单击将取决于该变量。例如:

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

else
viewArea.navigateTo();

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

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


推荐阅读