添加多个条目到列表并获取订单

时间:2016-11-26 14:03:51

标签: java javafx javafx-8

我在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是否已连接。如果左边没有连接但是右边,它应该是我列表中的第一个项目。如果两者都已连接,我需要订单并存储它。

2 个答案:

答案 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();