如何在JavaFX VBox中访问匿名/动态标签?

如何在JavaFX VBox中访问匿名/动态标签?,javafx,label,Javafx,Label,我对JavaFX有问题 我尝试做的很简单: 1.用户使用给定名称和surename填写两个文本字段。 2.通过点击AddPerson按钮,person类的对象将添加到包含此人姓名的arraylist中。同时,将有一个VBox对象,它添加了一个带有人名的匿名标签对象 问题是: 现在,我想单击VBox中的匿名标签并接收回Person对象 下面是添加一个人的方法 btnAddContact.setOnAction(e -> { if (!"".equals(tfVor

我对JavaFX有问题

我尝试做的很简单: 1.用户使用给定名称和surename填写两个文本字段。 2.通过点击AddPerson按钮,person类的对象将添加到包含此人姓名的arraylist中。同时,将有一个VBox对象,它添加了一个带有人名的匿名标签对象

问题是: 现在,我想单击VBox中的匿名标签并接收回Person对象

下面是添加一个人的方法

      btnAddContact.setOnAction(e -> {
        if (!"".equals(tfVorname.getText().toString())
                && !"".equals(tfNachname.getText().toString())) {
            contactList.addContact(new Contact(tfVorname, tfNachname));
            spContacts.setContent(refreshContactList());
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    });
refreshContactList方法将新的匿名标签添加到ContactList的ArrayList中,并在标签中显示名称:

    private VBox refreshContactList() {

    if (contactList.getContactList().size()>0) {
        vbContacts.getChildren().add(new Label(contactList.getContactList().get(contactList.getContactList().size()-1).getVorname() + " " + contactList.getContactList().get(contactList.getContactList().size()-1).getNachname()));            
    }


    return vbContacts;
}
我试图编程一个vbContacts.setOnMouseClicked。。。但我能接收到的唯一对象是VBox

你知道如何进入实验室吗

谢谢


Karl

创建侦听器时,只需将其添加到标签:

private VBox refreshContactList() {

    if (contactList.getContactList().size()>0) {
        Contact lastContact = contactList.getContactList().get(contactList.getContactList().size()-1);
        Label label = new Label(lastContact.getVorname() + " " + lastContact.getNachname()) ;
        label.setOnMouseClicked(e -> {
            // do whatever you need with lastContact and/or label...
        });
        vbContacts.getChildren().add(label);            
    }


    return vbContacts;
}

只是一个评论:你可能想了解。