Is there a way to populate a JavaFX ComboBox
or ChoiceBox
with all enumerations of a enum ?
Here is what I tried :
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; } } }
In a another class, I'm trying to populate a ComboBox
:
ComboBox<Test.Status> cbxStatus = new ComboBox<>(); cbxStatus.setItems(Test.Status.values());
But I get an error : incompatible types: Status[] cannot be converted to ObservableList<Status>
I obviously get the same problem with a ChoiceBox
.
If setItems requires an ObservableList, then you have to give it one instead of an array.
Try this:
ComboBox<Status> cbxStatus = new ComboBox<>(); cbxStatus.setItems( FXCollections.observableArrayList( Status.values()));
Edit: The solution of James_D (see comment) is the preferred one:
cbxStatus.getItems().setAll(Status.values());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With