как использовать JUNG для окраски и формирования вершин и ребер - PullRequest
1 голос
/ 25 января 2010

У меня проблема с использованием JUNG. Я хочу нарисовать сетевую диаграмму, где вершины будут иметь разные формы и цвета, а края будут пунктирными или сплошными линиями разных цветов.

Поскольку я новичок в Java, я не могу понять действительную архитектуру Юнга. Когда я использую setVertexFillPaintTransformer, он окрашивает все вершины в один цвет. Вершины хранятся в целочисленном массиве. Я бьюсь головой по прошлой неделе. Пожалуйста, если кто-то может помочь мне или у него есть встречные вопросы, спросите меня

1 Ответ

3 голосов
/ 25 января 2010

Метод setVertexFillPaintTransformer принимает преобразователь, который преобразует вершину в цвет. Таким образом, чтобы иметь разные цвета для разных вершин, нужно сделать так, чтобы он проверял вершину. Параметр i в методе public Paint transform (Integer i) является вершиной, поэтому вы можете указать цвет, который на основе вершин (или i ). Например, если бы у меня был график, где вершинами были Integer , я мог бы циклически назначить вершинам три разных цвета, предоставив следующий преобразователь для setVertexFillPaintTransformer :

Transformer<Integer, Paint> vertexPaint = new Transformer<Integer, Paint>() {
    private final Color[] palette = {Color.GREEN, Color.BLUE, Color.RED}; 

    public Paint transform(Integer i) {
        return palette[i.intValue() % palette.length];
    }
};
...