Загрузите определенное имя в поле со списком в качестве первого ряда - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть модель с идентификатором и именем. Я поместил объект модели в поле со списком. Из модели я беру имя атрибута и делаю это визуальной частью, единственная проблема. При запуске программы в выпадающем списке она пуста. Вы должны нажать на нее и выбрать второй ряд, чтобы увидеть элемент. Я хотел бы увидеть товар прямо сейчас. это возможно?

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 голосов
/ 09 ноября 2018

это происходит потому, что вы не выбираете элемент в comboBox

comboBox.getSelectionModel().select(index);

, где index - это целочисленная позиция элемента, который нужно выбрать в модели выбора, или значение из того же типа, что и arrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...