【问题标题】:Differences between ComboBox and ChoiceBox in JavaFXJavaFX 中 ComboBox 和 ChoiceBox 的区别
【发布时间】:2015-11-08 21:38:36
【问题描述】:

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

归根结底,我需要一个可以在运行时动态重新填充的下拉控件(我在后端有一个数据库)。对于我的应用程序中的所有情况,我只需要从下拉菜单中选择一项。用户也不应该能够从他们可见的屏幕向下拉菜单中添加选项。

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

编辑

我想我已经回答了我自己关于关键差异的问题,那么还有什么我没有提到的可以区分 2 的吗?

【问题讨论】:

    标签: java user-interface javafx combobox difference


    【解决方案1】:

    ComboBox 支持cellFactory,它基本上允许使用任意 UI 来显示每个单元格中的项目。 ChoiceBox 没有此功能,只会在每个单元格中显示文本(您可以使用 converter 进行配置)。

    请参阅http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/combo-box.htm#BABJCCIB 清单 16.5,了解组合框中的自定义单元工厂示例。

    【讨论】:

    • 虽然这是 FX,但将 CSS 应用到 ChoiceBox 不能达到相同的最终效果吗?
    • 我不知道怎么做。如何使用 CSS 在选择框单元格中包含按钮(或任何其他控件)?多张图片?形状?向单元格添加工具提示?
    【解决方案2】:

    ChoiceBox 是向您显示可选选项的想法,ComboBox 向您显示项目列表,ChoiceBox 就像 ComboBoxComboBox 是一个非常长的列表,您可以指定要显示的项目数量为 10 或更多或更少,但 ChoiceBox 没有列出所有选项的选项,如果它很长,你不会喜欢这种外观。

    简称ChoiceBox,对于少于10个的小集合,对于更多的ComboBox

    从我的角度来看,这就是区别,至于样式,您可以设置所有样式。

    【讨论】:

      【解决方案3】:

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

      选择框 本章介绍选择框,即支持在几个选项之间快速选择的 UI 控件。

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

      【讨论】:

        【解决方案4】:

        我们可以简单地通过它们的功能区分ComboBoxChoiceBox。看看定义。

        JavaFX ComboBox 控件允许用户从预定义列表选项中选择一个选项,或者如果预定义选项中没有一个与用户想要选择。

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

        【讨论】:

          【解决方案5】:

          除了上面提到的区别:

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

          【讨论】:

            猜你喜欢
            • 2015-03-04
            • 1970-01-01
            • 1970-01-01
            • 2010-11-28
            • 1970-01-01
            • 2021-05-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多