我有一个带有ID和名称的模型。 I put the model object into a combobox. From the model i take the name atribute and make that the visual part, the only problem is. When you start up the编程组合框为空。 您必须单击它并选择第二行才能看到该项目。我想立即看到该物品。这可能吗?
public class ItemCell extends ListCell<Model> {
@Override
public void updateItem(Model person, boolean empty) {
super.updateItem(person, empty);
setText(person == null ? "" : person.getFirstName());
}
}
在我的视图类中,我有:
ComboBox<Model> comboBox = new ComboBox<>();
comboBox.setCellFactory(lv -> new ItemCell());
comboBox.setButtonCell(new ItemCell());
comboBox.valueProperty().addListener((o, oldValue, newValue) -> {
personModelFromCombobox = otherObject.getPerson();
});
如您所见,除了您必须单击它并选择第二行以查看项目之外,其他所有操作都正确。
答案 0 :(得分:0)
发生这种情况是因为您没有在comboBox
comboBox.getSelectionModel().select(index);
其中index
是要在选择模型中选择的项目的integer position,或者是value,其类型与arrayList相同。