为 MultipleSelectionModel 扩展 JFX ComboBox UI

Extending JFX ComboBox UI for MultipleSelectionModel

我想为 Open Java FX 8 实现一个 MultipleSelectionModel ComboBox,它将包括 ControlFX CheckComboBox 的所有功能(如 this post 中所示)以及其他补充功能这个问题的范围。

我的问题是,我已经阅读 JavaFX source 几个小时了,但我还没有找到使用哪种方法 1. ComboBox 创建要打印的元素列表(使用 ListView 和其他 JFX UI 元素)和 2. ComboBox 接收事件以显示列表并显示它。 你能帮我找到这些方法吗?

我已阅读以下内容类:

javafx.scene.control.ComboBox,
javafx.scene.control.ComboBoxBase,
com.sun.javafx.scene.control.skin.ComboBoxBaseSkin,
com.sun.javafx.scene.control.behavior.ComboBoxBaseBehavior,
javafx.scene.control.Cell

和其他一些不相关的 类,例如 MultipleSelectionModel。

我打算扩展 ComboBoxBase 来制作我的 MultipleComboBox。我还不能确定 ComboBoxBase 是否可以支持 MultipleSelectionModel。

来源的标准位置是 here

我不明白第一个问题:"the ComboBox creates the list elements to print"。这是什么意思?

对于 2:ComboBoxBaseSkincomboBoxshowingProperty() 注册一个侦听器(这是在构造函数中完成的)。 handleControlPropertyChanged(...) 方法在 属性 更改时调用 show()hide()。这些是抽象方法,在subclassComboBoxPopupControl中实现; show() 在 class 中的实现基本上只是在包含列表视图的 PopupControl 上调用 show(...)。弹出窗口的内容(即列表视图)在 subclass ComboBoxListViewSkin.

中创建

显示弹出窗口的实际触发器是通过调用 ComboBoxshow() 方法来管理的,这会导致 isShowing 属性 设置为 true,触发上述侦听器。这是通过 ComboBoxBaseBehavior 方法完成的。