JavaFX中ComboBox和ChoiceBox的区别

34
JavaFX中ComboBox和ChoiceBox有什么区别?光从两个类的Javadoc中我并不完全清楚。
最终,我需要一个可以在运行时动态重新填充的下拉控件(我在后端有一个数据库)。在我的应用程序的所有情况下,我只需要从下拉菜单中选择一项。用户也不应该能够从屏幕上看到的下拉菜单中添加选项。
我的理解是,ComboBox允许用户向下拉列表中添加项目,并允许选择多个项目,但是根据Javadoc似乎可以设置ComboBox以满足我的需求,因此它们在某种程度上是可互换的。我想ComboBox比我实际需要的多一些开销,但除此之外,还有没有其他只有ComboBox才能做到的事情,这会影响这个决定?
编辑:
我想我对关键差异有了答案,那么还有什么我没提到的可以区分这两者吗?
5个回答

35

既然这是FX,那么将CSS应用于ChoiceBox不也能达到同样的效果吗? - Slayer0248
5
我不明白如何做到。你如何使用CSS在选择框单元格中包含按钮(或任何其他控件)?多个图像?形状?向单元格添加工具提示? - James_D

18

ChoiceBox 是显示可选项的想法,而 ComboBox 显示一个项目列表。与 ComboBox 不同的是,ChoiceBox 适用于较小的列表,而 ComboBox 则适用于非常长的列表,因为您可以指定要显示的项目数,例如10个或更多或更少。但是,ChoiceBox 没有这个选项,它会列出所有选项,如果列表很长,您可能不喜欢它的外观。

简而言之,对于小于10个项目的列表,请使用 ChoiceBox,对于更大的列表,请使用 ComboBox

在我的看法中,这就是它们之间的区别,至于样式,您可以自行设置。


8

组合框 组合框是用户界面的典型元素之一,它使用户能够选择多个选项中的一个。当要显示的项目数量超过某个限制时,组合框非常有用,因为它可以向下拉列表添加滚动条,而单选框则不能。如果项目数量不超过某个限制,开发人员可以决定使用组合框还是单选框更适合他们的需求。

单选框 本章介绍了单选框,这些 UI 控件提供了快速选择几个选项的支持。

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


3
我们可以通过它们的功能简单区分 ComboBoxChoiceBox。只需看一下定义即可。
JavaFX ComboBox 控件使用户能够从预定义列表中选择选项,或者输入另一个值,如果没有任何预定义的选项符合用户想要选择的内容。
JavaFX ChoiceBox 控件仅使用户能够从预定义列表中选择选项。

3
除了上述差异外:
  • ComboBox可以使用setPromptText显示提示语(ChoiceBox不提供该方法)
  • ComboBox可以使用setVisibleRowCount显示超过10行(ChoiceBox不提供该方法)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接