我正在尝试检测ChoiceBox
项目选择。我读了this post,我知道可以这样做:
choiceBoxObject.getSelectionModel().selectedIndexProperty().addListener(myChangeListenerObject)
我也在ChoiceBox
类的文档中看到了这句话,它确认了上面的代码:
ChoiceBox项目选择由SelectionModel处理与ListView一样 和ComboBox
另一种解决方案出现在我脑海中,我想知道它有什么问题吗?为什么没人提这么说?这两种方法有什么区别?
choiceBoxObject.valueProperty().addListener(myChangeListenerObject);
答案 0 :(得分:0)
使用valueProperty
并没有错,实际上只是对所选值的变化作出反应,它可能是首选解决方案。
文档只是表明项目选择有一个完整的SelectionModel
。这比仅仅知道选择的内容有更丰富的API:有selectNext()
,selectFirst()
方法等等。因此,如果您需要以编程方式更改选择,则可以使用丰富的API。正如文档中指出的那样,您甚至可以用不同的实现替换选择模型,尽管用例很可能(非常)罕见。