JavaFX中ComboBox和ChoiceBox之间的差异

时间:2015-11-08 21:38:36

标签: java user-interface javafx combobox difference

JavaFX中ComboBox和ChoiceBox有什么区别?我不完全清楚这两个类的Javadoc。

在一天结束时,我需要一个可以在运行时动态重新填充的下拉控件(我在后端有一个数据库)。对于我的应用程序中的所有情况,我只需要从下拉菜单中选择一个项目。用户还应该无法从可见的屏幕上向下拉菜单添加选项。

我的理解是ComboBox允许用户将项目添加到下拉列表并允许选择多个项目,但是从Javadoc看来,可以以满足我需求的方式设置ComboBox,所以看起来好像他们在某种程度上可以互换。我猜ComboBox的开销比我在这种情况下真正需要的开销要多一些,但是还有什么只有ComboBox才能做到这一点会影响这个决定吗?

修改

我想我有点回答了我自己关于关键差异的问题,那么还有其他一些我没有提到的区分2吗?

5 个答案:

答案 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就像ComboBoxComboBox是一个非常冗长的列表,因为您可以指定要显示的项目数量,如10或更多或更少,但ChoiceBox没有选项列出所有选项,如果它很长,你不会喜欢看。

简称ChoiceBox,小于10的小型列表,更多ComboBox

从我的角度来看,这是差异,至于样式,你可以设置所有样式。

答案 2 :(得分:3)

组合框 组合框是用户界面的典型元素,使用户可以选择多个选项之一。当要显示的项目数超过某个限制时,组合框很有用,因为它可以将滚动添加到下拉列表中,与选择框不同。如果项目数量不超过某个限制,开发人员可以决定组合框或选择框是否更符合他们的需求。

选择框 本章介绍选择框,UI控件,支持快速选择几个选项。

http://docs.oracle.com/javafx/2/ui_controls/jfxpub-ui_controls.htm

答案 3 :(得分:1)

我们可以根据功能来区分ComboBoxChoiceBox。只需看一下定义。

JavaFX ComboBox控件使用户可以从预定义的列表中选择一个选项,或者键入另一个值(如果没有一个预定义的选项匹配)用户想要选择的内容。

JavaFX ChoiceBox控件使用户能够从仅预定义的预定义列表中选择一个选项。

答案 4 :(得分:0)

除上述差异外:

  • 组合框可以显示带有setPromptText的提示(ChoiceBox不提供该方法)
  • ComboBox可以显示setVisibleRowCount超过10行(ChoiceBox不提供该方法)