2016-04-12 17 views
0

Ich versuche, ChoiceBox Artikelauswahl zu erkennen. Ich las this post und ich weiß, dass es möglich ist, zu tun, auf diese Weise:JavaFX ChoiceBox EventHandling

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

Ich sah auch diesen Satz in Dokumentation für ChoiceBox Klasse, die über Code bestätigt:

Auswahlbox Artikelauswahl behandelt wird SelectionModel Wie bei Listview und ComboBox

Eine andere Lösung kam mir in den Sinn, und ich frage mich, ist es etwas falsch? Warum hat niemand diesen Weg erwähnt? Was ist der Unterschied zwischen diesen beiden Ansätzen?

choiceBoxObject.valueProperty().addListener(myChangeListenerObject); 

Antwort

0

Es ist nichts falsch mit den valueProperty verwenden, und in der Tat für einfach in dem gewählten Wert auf Veränderungen reagieren, ist es wahrscheinlich die bevorzugte Lösung.

Die Dokumentation zeigt nur an, dass eine vollständige SelectionModel die Auswahl der Elemente zugrunde liegt. Dies hat eine weit reichere API als einfach zu wissen, was ausgewählt ist: Es gibt selectNext(), selectFirst() Methoden, etc. usw. Wenn Sie also die Auswahl programmatisch ändern mussten, gibt es eine reichhaltige API zur Verfügung. Wie auch in der Dokumentation gezeigt, können Sie das Selektionsmodell sogar durch eine andere Implementierung ersetzen, obwohl Anwendungsfälle dafür (sehr) selten sind.