JavaFx控件org.controlsfx.control.CheckComboBox缺陷说明

来源:互联网 发布:淘宝买演唱会门票骗局 编辑:程序博客网 时间:2024/06/06 18:19

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/74993242,建议读者阅读原文,确保获得完整的信息

背景

  CheckComboBox类隶属于ControlsFX,ControlsFX是JavaFX的一个扩展控件库,由 Jonathan Giles进行维护。官方网址http://fxexperience.com/controlsfx/,如果打不开,请连接VPN。

这里写图片描述

  CheckComboBox是增强版的ComboBox,支持多选。通过下面对比可清晰了解这一点:

  • ComboBox举例:

ComboBox

  • CheckComboBox举例:

CheckComboBox

举例

  databaseNameInput是ComboBox或CheckComboBox的一个实例。对这个控件进行鼠标点击监听。

databaseNameInput.setOnMouseClicked(new EventHandler<MouseEvent>() {            public void handle(MouseEvent event) {                System.out.println("点击事件");            }        });

  当databaseNameInput是ComboBox时,输出结果如下,监听有效:

这里写图片描述

  当databaseNameInput是CheckComboBox时,控制台没有任何输出,监听无效:

这里写图片描述

场景

  下拉列表支持多选,CheckComboBox是不错的选择,但是经过测试其不支持点击事件(关于这一点,如果大家知道其他方法请不吝赐教),即点击控件,查询一次数据,刷新列表。

  既然其不支持点击事件,换个思路,何不添加一个Button来处理点击事件,然后刷新CheckComboBox的数据。

这里写图片描述

参考

1、CheckComboBox显示刷新问题(Refresh issue on ControlsFX CheckComboBox display)
2、CheckComboBox控件API文档)