循环遍历enum类并为每个[JAVA]指定颜色

循环遍历enum类并为每个[JAVA]指定颜色,java,enums,Java,Enums,目前正在我的第二学期工作,在一个项目中,我们第一次使用了枚举类。目前,它包含我们在MapCanvas类中用于着色的路径类型。 我想在这个迭代过程中遍历这个类,并将不同的颜色分配给不同的枚举,但我不知道如何进行 当前我的枚举类如下所示: public enum WayType { UNKNOWN, BUILDING, WATER, COASTLINE, LANDUSE, LEISURE, FARMLAND, BICYCLE, FOOTWAY, PRIMARYROAD, MOTORWAY, TER

目前正在我的第二学期工作,在一个项目中,我们第一次使用了枚举类。目前,它包含我们在MapCanvas类中用于着色的路径类型。 我想在这个迭代过程中遍历这个类,并将不同的颜色分配给不同的枚举,但我不知道如何进行

当前我的枚举类如下所示:

public enum WayType {
UNKNOWN, BUILDING, WATER, COASTLINE, LANDUSE, LEISURE, FARMLAND, 
BICYCLE, FOOTWAY, PRIMARYROAD, MOTORWAY, TERTIARYROAD, SECONDARYROAD;
}
    public void stroke(GraphicsContext gc) {
    gc.beginPath();
    trace(gc);
    gc.stroke();
}
此时我们如何在MapCanvas中应用颜色:

    gc.setFill(Color.LIGHTGREEN);
    for (Drawable way : model.getWaysOfType(WayType.LANDUSE)) 
    way.fill(gc);
    for (Drawable way : model.getWaysOfType(WayType.LANDUSE)) 
    way.stroke(gc);
笔划和填充方法如下所示:

public enum WayType {
UNKNOWN, BUILDING, WATER, COASTLINE, LANDUSE, LEISURE, FARMLAND, 
BICYCLE, FOOTWAY, PRIMARYROAD, MOTORWAY, TERTIARYROAD, SECONDARYROAD;
}
    public void stroke(GraphicsContext gc) {
    gc.beginPath();
    trace(gc);
    gc.stroke();
}

非常感谢您的帮助。
提前感谢:)

正如@adickinson所建议的:

import java.awt.Color;

public enum WayType {
    UNKNOWN(Color.Black), BUILDING(Color.Gray), WATER(Color.Blue), 
    COASTLINE(Color.DarkBlue), LANDUSE(Color.Green) /*... to complete*/;

    private Color color;

    private WayType(Color color) {
        this.color=color;
    }
    public Color getColor() {
        return color;
    }
}

正如@adickinson所建议的:

import java.awt.Color;

public enum WayType {
    UNKNOWN(Color.Black), BUILDING(Color.Gray), WATER(Color.Blue), 
    COASTLINE(Color.DarkBlue), LANDUSE(Color.Green) /*... to complete*/;

    private Color color;

    private WayType(Color color) {
        this.color=color;
    }
    public Color getColor() {
        return color;
    }
}

不需要以这种方式循环和分配值。可以使用默认值创建枚举,请参见相关问题。不需要以这种方式循环和分配值。可以使用默认值创建枚举,请参见相关问题。它不允许我从MapCanvas类中访问getColor方法,因为它不是静态的,但它不允许我将其设置为静态的。如何调用getColor?您必须在枚举实例上调用它,例如“WayType.BUILDING.getColor()”,而不是“WayType.getColor()”。它不允许我从MapCanvas类访问getColor方法,因为它不是静态的,但不允许我将其设为静态的。如何调用getColor?必须对枚举实例调用它,如“WayType.BUILDING.getColor()”,而不是“WayType.getColor()”