如何在Java中的Jcombobox中使用浮点枚举

时间:2019-05-01 15:35:36

标签: java swing enums jcombobox

我有一个枚举类,它使用浮点数作为其值,例如

public enum Size {

    SMALL(10.50f),MEDIUM(12.35f),LARGE(15.90f);

    private float value;

    Size(float value){ 
        this.value = value;
    }
    public float getValue(){
        return this.value;
    }
}

我想使用这个枚举来“生成”将用于Jcombobox的列表,用户可以在其中选择一种尺寸。

ddSize.setModel((Size.values()));

我正在尝试使用上面的代码,但是出现以下错误:

error: incompatible types: Size[] cannot be converted to ComboBoxModel<String>
        ddSize.setModel((Size.values()));

如果可能,我需要一种方法来使用浮点枚举而不出现此错误。

1 个答案:

答案 0 :(得分:0)

setModel花费了ComboBoxModel<E>,因此您可以像这样使用DefaultComboBoxModel来填充JComboBox

ddSize.setModel(new DefaultComboBoxModel(Size.values()));

以确保其有效:

IntStream.range(0, ddSize.getItemCount())
        .forEach(index -> System.out.println(ddSize.getItemAt(index)));

输出

SMALL
MEDIUM
LARGE