java - 从枚举中填充 JavaFX ComboBox 或 ChoiceBox

标签 java combobox enums javafx

有没有办法填充 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());

关于java - 从枚举中填充 JavaFX ComboBox 或 ChoiceBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801119/

相关文章:

java - spring-boot:run 添加 hadoop 依赖时抛出错误

asp.net-mvc - ASP.NET MVC 组合下拉框

WPF MVVM 将 ComboBox 绑定(bind)到 Datagrid 所选项目

scala - 获取 Scala 枚举实例

c++ - Windows 到 Linux 中的枚举声明

java - Java 新手,学习很快,但不明白为什么我的 for 循环不会打印

java - 尝试从存储中获取元素时出现 NullPointerException

java - 以最简单的方式创建和填充数组

java - 在 JComboBox 中选择不同的选项时覆盖 JLabels?

ios - 将嵌套枚举作为参数传递