如何在 Java 中将浮动枚举与 Jcombobox 一起使用

How do I use float enums with a Jcombobox in Java

我有一个枚举 class,它的值使用浮点数,例如

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;
    }
}

我想将此枚举用于 'generate' 将用于 Jcombobox 的列表,用户将在其中 select 其中一种尺寸。

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

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

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

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

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