添加多个条目以列出并获取订单

问题描述:

我在AnchorPane上创建了Buttons的多个CustomNode。 我的节点创建于Button点击,例如。当我点击Button'task1'时,将会创建一个具有Label'task1'和一个ID的新节点。 这些CustomNodes具有多个任务(例如task1,task2),它们将在不同的Button事件中创建。 我有一个ArrayList我存储这些ID(但我存储在同一个列表中的所有ID)。添加多个条目以列出并获取订单

我可以在一个List index(id + function)中存储两个项目吗?就像当我按任务1 Button时,我想将id和函数task1存储在同一个索引中。当我按任务2 Button时,我想将id + task2函数存储在相同的列表中。

我的问题的另一点是我可以得到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是否已连接。如果左侧没有连接,但是右侧,它应该是我列表中的第一个条目。如果两者都连接,我需要订单并存储它。

只需创建将存储ID和任务这样一个类:

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(); 
+0

您的评论似乎导致我的解决方案,但我所说的任务更多的是一种功能,如功能1();.我很抱歉我把它称为任务,你知道如何改变它吗? – Flippy

+0

Like Stocker(String funcname,String id),然后获取字符串名称来调用函数? – Flippy

+0

对不起,也许我不明白你在问什么,你是否试图存储一个函数并在以后得到它? – GoldenBolt

http://www.javaslang.io/已经定义了类型Touple,这正是你想要的,但如果你不想添加一个新的库,只需自己构建对象。具有两个属性(id和函数)的简单pojo应该可以做到这一点。