在组合框中加载特定名称作为第一行

时间:2018-11-09 07:02:05

标签: java javafx combobox

我有一个带有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();
});

如您所见,除了您必须单击它并选择第二行以查看项目之外,其他所有操作都正确。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您没有在comboBox

中选择一项
comboBox.getSelectionModel().select(index);

其中index是要在选择模型中选择的项目的integer position,或者是value,其类型与arrayList相同。