从枚举填充JavaFX ComboBox或ChoiceBox
有没有一种方法可以填充JavaFX ComboBox
或ChoiceBox
枚举的所有枚举?
这是我尝试的:
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