Populating JavaFX ComboBox or ChoiceBox from enum

后端 未结 2 491
余生分开走
余生分开走 2020-12-16 12:04

Is there a way to populate a JavaFX ComboBox or ChoiceBox with all enumerations of a enum ?

Here is what I tried :

public c         


        
相关标签:
2条回答
  • 2020-12-16 12:26

    I used FXML for this. My enum has a constructor

    <ComboBox GridPane.rowIndex="0" GridPane.columnIndex="1">
            <items>
                <FXCollections fx:factory="observableArrayList">
                    <Type fx:value="ABC"/>
                    <Type fx:value="DEF"/>
                    <Type fx:value="GHI"/>
                </FXCollections>
            </items>
        </ComboBox>
    

    public enum Type {
    
        ABC("abc"),DEF("def"),GHI("ghi");
    
        private String name;
    
        private Type(String theType) {
            this.name = theType;
        }
    
    }
    
    0 讨论(0)
  • 2020-12-16 12:37

    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());
    
    0 讨论(0)
提交回复
热议问题