2010-01-25 5 views
1

Je suis confronté à un problème dans l'utilisation de JUNG. Je veux dessiner un diagramme de réseau où les sommets auront des formes et des couleurs différentes et les bords seront en pointillé ou en ligne complète dans différentes couleurs.comment utiliser JUNG pour colorier et façonner les sommets et les bords

Depuis que je suis un débutant en Java, je suis incapable de comprendre l'architecture réelle de jung. Quand j'utilise setVertexFillPaintTransformer, il colore tous les sommets avec la même couleur. Les sommets sont stockés dans un tableau d'entiers. Je me tape la tête depuis une semaine maintenant. Plz si quelqu'un peut me aider ou a quelques questions de contre, ne me demandez

Répondre

3

La méthode setVertexFillPaintTransformer prend dans un transformateur qui convertit un Vertice en une couleur. Donc, pour avoir des couleurs différentes pour différents sommets, vous devez faire inspecter le sommet. Le paramètre, i dans la méthode peinture publique de transformation (entier i) est le sommet, de sorte que vous pouvez fournir une couleur qui est basée sur les sommets (ou i). Par exemple, si j'avais un graphique où les sommets étaient un entier, je cycle pourrait affecter trois couleurs différentes aux sommets en fournissant le transformateur à la suite 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]; 
    } 
};