有没有办法填充 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());
关于java - 从枚举中填充 JavaFX ComboBox 或 ChoiceBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801119/