Вопрос

Я использую пакет FlexGantt Javax Swing (http://www.dlsc.com/), чтобы отобразить некоторые диаграммы Ганта.Проблема в том, что я не могу понять, как изменить цвет объекта DefaultTimelineObject, который я расширил до своего собственного класса.На самом деле, единственные цвета, которые я могу изменить, — это цвета фона строк Ганта.

Это было полезно?

Решение 2

Так что мне удалось это выяснить. Это довольно сложно, или, по крайней мере, для меня, так как я не очень (и до сих пор не совсем) понимаю шаблон Model-View-Controller, используемый FlexGantt. Итак, вот куда мы идем. Нам нужен класс TimelineObjectRenderer, который расширяет DefaultTimelineObjectRenderer. У этого средства визуализации есть метод, который возвращает Компонент, называемый getTimelineObjectRendererComponent. В этом методе мне нужно было вызывать методы setActivityFillColor1 и setActivityFillColor2, которые являются двумя цветами, используемыми для создания вертикального наложения на элементе.

Важный код здесь:

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

Это первая часть.

В следующей части мы соединяем этот рендерер с самим объектом GanttChart и сообщаем диаграмме, где найти рендерер, необходимый для каждого элемента.

Две строки, которые я использовал для этого, следующие:

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

Итак, я в итоге все сделал, заставил его работать, и меня очень впечатлила гибкость пакета FlexGantt.

Другие советы

Вам следует опубликовать этот вопрос в группе новостей FlexGantt по адресу: http://groups.google.com/group/flexgantt

С уважением,

Дирк (автор Flexgantt)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top