2016-07-19 17 views
-1

Ich möchte eine ChoiceBox aus einer List<Object> auffüllen. Mein Objekt hat ein Namensfeld, das ich als Auswahltext verwenden kann. Natürlich muss ich wissen, welches Objekt der Benutzer ausgewählt hat, um die richtigen Daten zu übergeben.So füllen Sie eine ChoiceBox mit Objekten aus einer Liste

FXML Controller:

public void initialize(URL fxmlFileLocation, ResourceBundle resources) { 
    UniversitiesService uniService = new UniversitiesServiceImpl(); 
    List<University> uniList = uniService.getUniversitiesList(); 
    //uniChoiceBox.setItems(); Need some guidance here 
} 

Universität Entity:

private String universityName; 
private String universityURL; 
private String[] universityDataNames; 

//getters setters 
+0

Welches Framework verwenden Sie, geben Sie einen Code ein und geben Sie weitere Informationen dazu, was Sie vorhaben. –

+0

Was hast du probiert? Hast du die [Dokumentation, speziell über den 'Konverter '] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ChoiceBox.html#converterProperty) gelesen? –

Antwort

1

Just do

uniChoiceBox.getItems().setAll(uniList); 

Wenn Sie die Anzeige (dh, wenn die toString() Methode in University doesn‘konfigurieren Geben Sie den gewünschten Text ein, fügen Sie einen Konverter hinzu:

uniChoiceBox.setConverter(new StringConverter<University>() { 
    @Override 
    public String toString(University uni) { 
     return uni.getUniversityName(); 
    } 
    @Override 
    // not used... 
    public University fromString(String s) { 
     return null ; 
    } 
}); 
+0

Ich habe die toString() Methode total vergessen. Danke James (noch einmal)! – pror21

Verwandte Themen