JavaFX ChoiceBox EventHandling

时间:2016-04-12 22:59:15

标签: java javafx

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

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

我也在ChoiceBox类的文档中看到了这句话,它确认了上面的代码:

  

ChoiceBox项目选择由SelectionModel处理与ListView一样   和ComboBox

另一种解决方案出现在我脑海中,我想知道它有什么问题吗?为什么没人提这么说?这两种方法有什么区别?

choiceBoxObject.valueProperty().addListener(myChangeListenerObject);

1 个答案:

答案 0 :(得分:0)

使用valueProperty并没有错,实际上只是对所选值的变化作出反应,它可能是首选解决方案。

文档只是表明项目选择有一个完整的SelectionModel。这比仅仅知道选择的内容有更丰富的API:有selectNext()selectFirst()方法等等。因此,如果您需要以编程方式更改选择,则可以使用丰富的API。正如文档中指出的那样,您甚至可以用不同的实现替换选择模型,尽管用例很可能(非常)罕见。