java - 循环遍历枚举类并为每个 [JAVA] 分配颜色

标签 java enums

目前我的第二学期正在进行一个项目,我们第一次使用了 Enum 类。目前它包含我们用来在 MapCanvas 类中着色的 WayTypes。 我想迭代这个类,并在迭代期间为不同的枚举分配不同的颜色,但我不知道如何实现。

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

public enum WayType {
UNKNOWN, BUILDING, WATER, COASTLINE, LANDUSE, LEISURE, FARMLAND, 
BICYCLE, FOOTWAY, PRIMARYROAD, MOTORWAY, TERTIARYROAD, SECONDARYROAD;
}

此时我们如何在 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 void stroke(GraphicsContext gc) {
    gc.beginPath();
    trace(gc);
    gc.stroke();
}

还有

    public void fill(GraphicsContext gc) {
    gc.beginPath();
    trace(gc);
    gc.fill();
}

非常感谢任何帮助。 预先感谢:)

最佳答案

正如@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;
    }
}

关于java - 循环遍历枚举类并为每个 [JAVA] 分配颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280155/

相关文章:

java - 管理测试用例,存在于单个文件中

c++ - 为嵌套枚举类声明友元插入运算符(运算符<<)

c++ - 如何在C++中将枚举插入另一个枚举

c# - 作为枚举的键值对

java: 一长串条件,怎么办?

java - SendKeys() 仅在我的表单的一个字段中不起作用

java - 逐行读取文件夹中的所有.txt 文件

java - 如何在Selenium 2的ChromeDriver中设置HTTP代理?

swift - 获取没有类型的枚举关联值

mysql - 我们怎么能不允许 mysql 中的枚举不为空?