2017-10-31 9 views
0

JavaFXに問題があります。JavaFX VBoxのアノニマス/ダイナミックラベルへのアクセス方法を教えてください。

私がしようとしているのはかなり簡単です: 1.ユーザーは、与えられた名前とsurenameで2つのTextFieldを記入します。ボタンでclikingことで 2.クラス「人」のObjekt「人を追加する」人の名前を格納するArrayListに追加されます。同時に、人の名前をanonymus label-Objectに追加するVBox-Objectがあります。

問題: ここで、VBoxの匿名ラベルをクリックして、Person-Objectを受け取ります。ここで

 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の)に新しいanonymusラベルを追加し、ラベルに名前が表示されます。

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でした。

ラベスへのアクセスを得るためにどのように任意のアイデア?

おかげ

カール

+0

だけコメント:あなたは[ 'ListView'](HTTPSについて学習したい場合があります: //docs.oracle.com/javase/8/javafx/user-interface-tutorial/list-view.htm#CEGGEDBF)。 –

答えて

1

はちょうどあなたがそれを作成するときに、ラベルにリスナーを追加します。

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; 
} 
関連する問題