Domanda

Sto usando il pacchetto FlexGantt Javax Swing ( http://www.dlsc.com/ ) per visualizzare alcuni grafici di Gantt. Il problema che sto avendo è che non riesco a capire come cambiare il colore di un DefaultTimelineObject che ho esteso nella mia classe. In realtà, gli unici colori che mi sembrano in grado di cambiare sono quelli che sono per i colori di sfondo delle righe di Gantt.

È stato utile?

Soluzione 2

Quindi sono riuscito a capirlo. È un po 'complicato, o almeno lo è stato per me, dato che non capivo (e ancora non capisco del tutto) il modello Model-View-Controller utilizzato da FlexGantt. Quindi, ecco dove andiamo. È necessaria una classe TimelineObjectRenderer che estende DefaultTimelineObjectRenderer. Quel renderer ha un metodo che restituisce un Component, chiamato getTimelineObjectRendererComponent. In quel metodo, avevo bisogno di chiamare i metodi setActivityFillColor1 e setActivityFillColor2, che sono i due colori utilizzati per creare la fusione verticale su un elemento.

Il codice importante è qui:

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

Questa è la prima parte.

La parte successiva è dove connettiamo quel Renderer con l'oggetto GanttChart stesso e diciamo al Grafico dove trovare il Renderer necessario per ogni elemento.

Le due linee che ho usato per questo sono le seguenti:

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

Quindi alla fine ci sono arrivato, l'ho fatto funzionare e sono rimasto molto colpito dalla flessibilità del pacchetto FlexGantt.

Altri suggerimenti

Dovresti pubblicare questa domanda nel newsgroup FlexGantt all'indirizzo http://groups.google.com/group / flexgantt

Saluti,

Dirk (Autore FlexGantt)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top