Переберите класс enum и назначьте цвет для каждого [JAVA] - PullRequest
1 голос
/ 21 марта 2019

В настоящее время я работаю над моим вторым семестром, работая над проектом, в котором мы впервые использовали класс Enum. В настоящее время он содержит WayTypes, которые мы используем для окраски в нашем классе MapCanvas. Я хотел бы перебрать этот класс и назначить разные цвета различным Enums во время этой итерации, но я не могу понять, как.

В настоящее время мой класс Enum выглядит следующим образом:

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

Любая помощь очень ценится. Заранее спасибо :)

1 Ответ

0 голосов
/ 21 марта 2019

Как @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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...