anylogic - 在 AnyLogic 中使用“点击”两次的方法
问题描述
我在主代理中有 4 个矩形,它们代表不同的站点(位置)。这些站点分别具有与它们相关的信息,并且在组合时,它们的值也被组合在一起。目前,我的模型正在列出所有可能的组合,即 1 和 2;1、2和3;1和3等。我的目标是自己选择组合,而不是生成所有组合。
我目前正在使用“点击”将模型带到单独的视图区域。我想要的是单击这些矩形进行组合,但我担心如果我使用“单击时”它会与视图区域发生冲突。是否有可能同时做到这两个?
谢谢
解决方案
我建议您利用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();
这样,第一次单击将允许您选择站点,第二次单击将导航到那里。
我知道这不是一个直截了当的答案,但可以从多个角度来解决这个问题。这至少应该给你一些想法。
推荐阅读
- c# - 如何将图像传递给另一个表单
- python - 通过从 HTCondor 作业运行的 python 脚本执行 bash 命令
- python - 实现桶排序的 Python 程序:有没有更好的方法来创建桶?
- python - 动态链接 3 个 Tkinter Scale 小部件,使它们的总和始终为 1
- javascript - React JS:为时间表创建单元格,其中同一行上的单元格不能包含相同的团队名称
- pycuda - 工作线程中的 TensorRT 执行上下文无法正常工作或导致崩溃
- rest - 从休息服务设计正确的返回响应
- c++ - 在 TFT 上显示日期而不使用 char 形式的数字数组
- python - 深度学习 CNN 图像预处理
- redis - 反应式 Redis 订阅者无法使用 Kotlin 协程工作