JavaFX中ComboBox和ChoiceBox有什么区别?我不完全清楚这两个类的Javadoc。
在一天结束时,我需要一个可以在运行时动态重新填充的下拉控件(我在后端有一个数据库)。对于我的应用程序中的所有情况,我只需要从下拉菜单中选择一个项目。用户还应该无法从可见的屏幕上向下拉菜单添加选项。
我的理解是ComboBox允许用户将项目添加到下拉列表并允许选择多个项目,但是从Javadoc看来,可以以满足我需求的方式设置ComboBox,所以看起来好像他们在某种程度上可以互换。我猜ComboBox的开销比我在这种情况下真正需要的开销要多一些,但是还有什么只有ComboBox才能做到这一点会影响这个决定吗?
修改
我想我有点回答了我自己关于关键差异的问题,那么还有其他一些我没有提到的区分2吗?
答案 0 :(得分:19)
ComboBox
支持cellFactory
,它允许基本上任意UI用于在每个单元格中显示项目。 ChoiceBox
没有此功能,只会在每个单元格中显示文字(您可以使用converter
进行配置)。
有关组合框中自定义单元工厂的示例,请参阅http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/combo-box.htm#BABJCCIB清单16.5。
答案 1 :(得分:9)
好ChoiceBox
可以向您显示可选项,而ComboBox
会向您显示项目列表,ChoiceBox
就像ComboBox
但ComboBox
是一个非常冗长的列表,因为您可以指定要显示的项目数量,如10或更多或更少,但ChoiceBox
没有选项列出所有选项,如果它很长,你不会喜欢看。
简称ChoiceBox,小于10的小型列表,更多ComboBox
从我的角度来看,这是差异,至于样式,你可以设置所有样式。
答案 2 :(得分:3)
组合框 组合框是用户界面的典型元素,使用户可以选择多个选项之一。当要显示的项目数超过某个限制时,组合框很有用,因为它可以将滚动添加到下拉列表中,与选择框不同。如果项目数量不超过某个限制,开发人员可以决定组合框或选择框是否更符合他们的需求。
选择框 本章介绍选择框,UI控件,支持快速选择几个选项。
http://docs.oracle.com/javafx/2/ui_controls/jfxpub-ui_controls.htm
答案 3 :(得分:1)
我们可以根据功能来区分ComboBox
和ChoiceBox
。只需看一下定义。
JavaFX ComboBox
控件使用户可以从预定义的列表中选择一个选项,或者键入另一个值(如果没有一个预定义的选项匹配)用户想要选择的内容。
JavaFX ChoiceBox
控件使用户能够从仅预定义的预定义列表中选择一个选项。
答案 4 :(得分:0)
除上述差异外:
setPromptText
的提示(ChoiceBox不提供该方法)setVisibleRowCount
超过10行(ChoiceBox不提供该方法)