2016-04-12 3 views
0

Я пытаюсь обнаружить ChoiceBox пункт выбора. Я прочитал this post и я знаю, что можно сделать, таким образом:JavaFX ChoiceBox EventHandling

choiceBoxObject.getSelectionModel().selectedIndexProperty().addListener(myChangeListenerObject) 

Я увидел это предложение в документации для ChoiceBox класса, который подтверждает код, указанный выше:

выбора пункта ChoiceBox обрабатывается SelectionModel Как ListView и ComboBox

Другое решение пришло мне в голову, и мне было интересно, что-нибудь случилось с ним? почему никто не упоминал об этом? В чем разница между этими двумя подходами?

choiceBoxObject.valueProperty().addListener(myChangeListenerObject); 

ответ

0

Там нет ничего плохого с использованием valueProperty, а на самом деле для простого реагирования на изменения выбранного значения, это, вероятно, является предпочтительным решением.

Документация просто указывает на то, что существует полный набор SelectionModel, лежащий в основе выбора предметов. Это гораздо более богатый API, чем просто знание того, что выбрано: есть методы selectNext(), selectFirst() и т. Д. Поэтому, если вам необходимо программно изменить выбор, имеется богатый API. Как также указано в документации, вы даже можете заменить модель выбора другой реализацией, хотя варианты использования для этого, вероятно, будут (очень) редкими.