我想为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。
答案 0 :(得分:1)
来源的标准位置为here。
我不理解第一个问题:" ComboBox创建要打印的列表元素"。这是什么意思?
对于2:ComboBoxBaseSkin
向comboBox
' s showingProperty()
注册一个监听器(这在构造函数中完成)。当属性发生变化时,handleControlPropertyChanged(...)
方法会调用show()
或hide()
。这些是抽象方法,在子类ComboBoxPopupControl
中实现;该类中show()
的实现基本上只调用保存列表视图的show(...)
上的PopupControl
。弹出窗口的内容(即列表视图)在子类ComboBoxListViewSkin
中创建。
通过调用ComboBox
的{{1}}方法来管理显示弹出窗口的实际触发器,这会导致show()
属性设置为true,从而触发侦听器如上所述。这是通过isShowing
方法完成的。