Question

J'utilise le package FlexGantt Javax Swing ( http://www.dlsc.com/ . ) pour afficher des diagrammes de Gantt. Le problème que je rencontre est que je ne peux pas comprendre comment changer la couleur d'un objet DefaultTimelineObject que j'ai étendu à ma propre classe. En fait, les seules couleurs que je semble capable de changer sont celles qui sont pour les couleurs de fond des lignes de Gantt.

Était-ce utile?

La solution 2

J'ai donc réussi à comprendre cela. C'est un peu compliqué, ou du moins c'était pour moi, car je ne comprenais pas vraiment (et je ne comprenais toujours pas très bien) le modèle Model-View-Controller utilisé par FlexGantt. Alors, voici où nous allons. Nous avons besoin d'une classe TimelineObjectRenderer qui étend le DefaultTimelineObjectRenderer. Ce rendu a une méthode qui renvoie un composant, appelé getTimelineObjectRendererComponent. Dans cette méthode, j'avais besoin d'appeler les méthodes setActivityFillColor1 et setActivityFillColor2, qui sont les deux couleurs utilisées pour créer le mélange vertical sur un élément.

Le code important est ici:

public class myTimelineObjectRenderer extends DefaultTimelineObjectRenderer {
    public Component getTimelineObjectRendererComponent(
        setActivityFillColor1(new Color(r,g,b));
        setActivityFillColor2(new Color(r,g,b));
    }
} //there is other code in this class, not mentioned here

C'est la première partie.

La partie suivante indique où nous connectons ce moteur de rendu avec l'objet GanttChart lui-même et indiquons au graphique où trouver le moteur de rendu requis pour chaque élément.

Les deux lignes que j'ai utilisées pour cela sont les suivantes:

GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
          new myTimelineObject().getClass(),new myTimelineObjectRenderer());

Alors, j'y suis finalement arrivé, je l'ai fait fonctionner et je suis très impressionné par la flexibilité du package FlexGantt.

Autres conseils

Vous devez publier cette question dans le groupe de discussion FlexGantt à l'adresse http://groups.google.com/group. / flexgantt

Cordialement,

Dirk (Auteur FlexGantt)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top