当前位置: 首页 > 面试题库 >

从枚举填充JavaFX ComboBox或ChoiceBox

车峻熙
2023-03-14
问题内容

有没有一种方法可以填充JavaFX ComboBoxChoiceBox枚举的所有枚举?

这是我尝试的:

public class Test {

    public enum Status {
        ENABLED("enabled"),
        DISABLED("disabled"),
        UNDEFINED("undefined");

        private String label;

        Status(String label) {
            this.label = label;
        }

        public String toString() {
            return label;
        }
    }
}

在另一个类中,我试图填充一个ComboBox

    ComboBox<Test.Status> cbxStatus = new ComboBox<>();
    cbxStatus.setItems(Test.Status.values());

但是我得到一个错误: incompatible types: Status[] cannot be converted to ObservableList<Status>

我显然也遇到了同样的问题ChoiceBox


问题答案:

如果setItems需要一个ObservableList,则必须给它一个而不是一个数组。

试试这个:

ComboBox<Status> cbxStatus = new ComboBox<>();
cbxStatus.setItems( FXCollections.observableArrayList( Status.values()));

编辑:James_D(请参阅注释)的解决方案是首选的解决方案:

cbxStatus.getItems().setAll(Status.values());


 类似资料:
  • 我正在为一个游戏开发Javafx应用程序。我有一些数据存储在枚举中,但似乎不知道如何轻松地将数据添加到JavaFX TableView,有人能帮我一下吗。我将使用fxml为TableView设置样式。 我希望每一个枚举vallue都在一个单独的行中,在我希望的列中: 图标为图像。 按整数排序。 级别为整数。 经验值为整数。 枚举:

  • 问题内容: 我想用一个枚举的所有可能值来填充列表 自从我最近爱上了,我就利用了 是否有更好的方法 (如在未混淆的衬管中)达到相同的结果? 问题答案: 我不会在一开始使用List,因为EnumSet更合适,但是您可以 要么

  • 问题内容: 我有一个表映射String-> Integer。 我想用数据库中的值填充该枚举,而不是静态地创建一个枚举。这可能吗 ? 因此,与其静态地解决这个问题,不如: 我想动态创建这个枚举,因为数字{0,1,2,3}基本上是随机的(因为它们是由数据库的AUTOINCREMENT列自动生成的)。 问题答案: 否。枚举始终固定在编译时。您执行此操作的唯一方法是动态生成相关的字节码。 话虽如此,您可能

  • 我应该工作,对吧?但它不是!!!!它告诉我dbValue可以转换为RelationActiveEnum...

  • 问题内容: 我有一个简单的收藏问题。我有一个对象。我想要一个的的中,且s 。我需要一个,因为我要覆盖专门返回的方法。最干净/最好的方法是什么? 问题答案: 编辑:无需编写自己的(尽管为了后代,我将在下面保留实现)-请参见Kevin Bourrillion在JDK中的答案。 如果您 确实 需要枚举,可以使用: 如果可能的话,最好使用… 更好的选择是在周围编写一个小型包装器类。这样一来,您不必为了发现

  • 问题内容: 这不是卡住我的问题,而是我正在寻找一种编写代码的整洁方法。 本质上,我正在编写一个事件驱动的应用程序。用户触发一个事件,该事件被发送到适当的对象,然后这些对象处理事件。现在,我正在编写偶数处理程序方法,并且希望使用switch语句确定如何处理事件。现在,在我研究通用结构时,事件类非常简单: 然后,在另一堂课中,我会看到类似以下内容的内容: 我会 喜欢 做的就是这样的事情(尽管我当然会坚