从枚举填充JavaFX ComboBox或ChoiceBox

有没有一种方法可以填充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 ComboBox或ChoiceBox 的全部内容, 来源链接: utcz.com/qa/413392.html

回到顶部