Как я могу заполнить ChoiceBox
, например. a StringProperty
из моего пользовательского класса?Заполнение ChoiceBox с пользовательским свойством в JavaFX
Я просто проектирую в SceneBuilder с ChoiceBox
, и у меня есть класс Person
с моими данными.
public class Person{
private final StringProperty firstName;
public Person(){
this(null);
}
public Person(String fname){
this.firstName = new SimpleStringProperty(fname);
}
public String getFirstName(){
return this.firstName.get();
}
public void setFirstName(String fname){
this.firstName.set(fname);
}
public StringProperty firstNameProperty(){
return this.firstName;
}
}
В главном классе у меня есть:
private ObservableList<Person> personList = FXCollections.observableArrayList();
this.personList.add(new Person("Human1"));
RootController controller = loader.getController();
controller.setChoiceBox(this);
public ObservableList<Person> getPersonList(){
return this.personList;
}
И в мой контроллер:
public class RootController {
@FXML
private ChoiceBox personBox;
public RootController(){
}
@FXML
private void initialize(){
}
public void setChoiceBox(App app){
personBox.setItems(app.getPersonList());
}
}
Но этот код заполнить мой ChoiceBox именем функции (??) или что-то в этом роде. Как я могу заполнить его свойством firstName?
Я полностью с @fabian, но для меня возникает вопрос, почему и когда человек делает первый имя действительно изменить? EDIT: Upvote для подсказки – SSchuette