Итак, есть ряд вещей, которые вы захотите рассмотреть, в них не будет содержаться весь код, но этого должно быть достаточно, чтобы начать работу.
1) ВыВы захотите отсканировать свои Предметы в ObservableList<Item>
, чтобы они были в едином Списке для работы.Как минимум, вы можете сделать что-то вроде этого в вашей for:
String id = scanner.next();
String name = scanner.next();
String price = scanner.nextDouble();
items.add(new Item(id, name, price));
, хотя вы, вероятно, хотите сделать цикл внутри сканера немного более динамичным (вместо 10) - возможно, используйте цикл whileили другой читатель.
2) Теперь, когда у вас есть список предметов, вы хотите использовать ComboBox<Item> cbItems = new ComboBox<Item>()
для отображения.Вам нужно будет установить cbItems.setCellFactory(...)
и cbItems.setButtonFactory(...)
, чтобы в раскрывающемся списке отображался идентификатор или имя.Список ObservableList, к которому вы добавили, может быть установлен на cbItems.setItems(items)
, описанный в (1).Об этом написано множество SO статей, поэтому я опущу полный код.
3) Выбор дилеров, хотите ли вы использовать ObjectProperty<Item>
или cbItems.selectedProperty()
для привязки ктекстовые поля, которые вы используете.рекомендую начать с используемого вами сейчас обработчика изменений и установить метки непосредственно с помощью item.getName()
, а после того, как вы получите этот рабочий режим, перейти к lblName.textProperty().bind(Bindings....)
.
Что касается ошибки,Вы не опубликовали достаточно информации (что является исключением или полный код для репликации), поэтому я не могу помочь в этом.Но если вы исследуете пункты выше, вы должны быть ближе.