JavaFX ChoiceBox事件处理

JavaFX ChoiceBox事件处理,java,javafx,Java,Javafx,我正在尝试检测ChoiceBox项目选择。我读过,我知道可以这样做: choiceBoxObject.getSelectionModel().selectedIndexProperty().addListener(myChangeListenerObject) 我还在ChoiceBox类的文档中看到了这句话,它确认了上面的代码: ChoiceBox项目选择由SelectionModel处理,与ListView一样 和组合框 我想到了另一个解决方案,我想知道它有什么问题吗?为什么没人这么说?这两

我正在尝试检测
ChoiceBox
项目选择。我读过,我知道可以这样做:

choiceBoxObject.getSelectionModel().selectedIndexProperty().addListener(myChangeListenerObject)
我还在
ChoiceBox
类的文档中看到了这句话,它确认了上面的代码:

ChoiceBox项目选择由SelectionModel处理,与ListView一样 和组合框

我想到了另一个解决方案,我想知道它有什么问题吗?为什么没人这么说?这两种方法的区别是什么

choiceBoxObject.valueProperty().addListener(myChangeListenerObject);

使用
valueProperty
没有错,事实上,对于简单地响应所选值的更改来说,它可能是首选的解决方案

文档只是表明在项目选择的基础上有一个完整的
SelectionModel
。这比简单地知道所选内容有更丰富的API:有
selectNext()
selectFirst()
方法等。因此,如果您需要以编程方式更改选择,可以使用丰富的API。正如文档中所指出的,您甚至可以用不同的实现替换选择模型,尽管这种情况可能(非常)少见