Изменение цвета объекта FlexGantt TimelineObject
-
06-07-2019 - |
Вопрос
Я использую пакет 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)