2016-07-19 5 views
-1

Я не заселяю ChoiceBox от List<Object>. У моего объекта есть поле имени, которое я не буду использовать в качестве текста выбора. Конечно, мне нужно знать, какой объект выбрал пользователь, чтобы передать правильные данные.Как заполнить ChoiceBox объектами из списка

FXML Контроллер:

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

университет Entity:

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

//getters setters 
+0

какие рамки вы используете, разместите код и предоставьте дополнительную информацию о том, что вы намереваетесь сделать. –

+0

Что вы пробовали? Прочитали ли вы [документацию, особенно о конвертере] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ChoiceBox.html#converterProperty)? –

ответ

1

Вобще

uniChoiceBox.getItems().setAll(uniList); 

Если вам нужно настроить отображение (т.е. если toString() метод University Безразлично» t введите текст, который вам нужен), добавьте конвертер:

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

Я полностью забыл метод toString(). Спасибо Джеймсу (еще раз)! – pror21

Смежные вопросы