我在Buttons
上创建了AnchorPane
个多个CustomNode。
我的节点是在Button
点击时创建的,例如。当我点击按钮'task1'时,将创建一个带有Label
'task1'和ID的新节点。
这些CustomNode具有多个任务(例如,task1,task2),它们将在不同的Button
事件中创建。
我有ArrayList
我存储这些ID(但我将所有ID存储在同一个列表中)。
我可以在一个List索引(id + function)中存储两个项目吗?就像当我按下task1 Button
时,我想将id和function task1存储在同一个索引中。当我按下task2 Button
时,我想将id + task2函数存储在后面,但是在同一个List中。
我的另一个问题是我可以获得ID的订单吗?我通过CubicCurves
连接我的节点,在这个链接类我有我的功能:
public void bindEnds (DragNode source, DragNode target) {
//Code above
source.registerLink (getId());
target.registerLink (getId());
}
public void registerLink(String linkId) {
mLinkIds.add(linkId);
}
我在哪里注册我的源和目标CustomNodes。
在我的节点上有两个Circles
(左侧和右侧)。左Circle
应该是输入,右输出。我想检查我的左/右Circle
是否已连接。如果左边没有连接但是右边,它应该是我列表中的第一个项目。如果两者都已连接,我需要订单并存储它。
答案 0 :(得分:0)
库http://www.javaslang.io/已经定义了Touple类型,这正是您想要的,但如果您不想添加新库,只需自己构建对象。一个有两个属性(id和function)的简单pojo应该可以解决问题。
答案 1 :(得分:0)
只需创建一个将存储id和task的类:
public class Stocker {
private Task task;
private int id;
public Stocker(Task task, int id) {
this.task = task;
this.id = id;
}
public Task getTask() {
return task;
}
public int getId() {
return id;
}
}
然后像这样更改您的列表:
List<Stocker> stockers = new ArrayList<Stocker>();
您现在可以使用以下内容创建一个储料器
Stocker stocker = new Stocker(task,id);
将其存储在:
stockers.add(stocker);
并使用以下方式访问您的值:
stockers.get(index).getId();
//or
stockers.get(index).getTask();