我正在使用 FlexGantt Javax Swing 包 ( http://www.dlsc.com/ ) 来显示一些甘特图。我遇到的麻烦是我无法弄清楚如何更改已扩展到我自己的类的 DefaultTimelineObject 的颜色。实际上,我似乎能够改变的唯一颜色是甘特行的背景颜色。
andlar
问问题
382 次
2 回答
0
于 2009-03-10T09:48:21.023 回答
0
所以我确实设法弄清楚了这一点。这有点复杂,或者至少对我来说是这样,因为我并没有真正(并且仍然不完全)理解 FlexGantt 使用的模型-视图-控制器模式。所以,这就是我们要去的地方。我们需要一个扩展 DefaultTimelineObjectRenderer 的 TimelineObjectRenderer 类。该渲染器有一个返回组件的方法,称为 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
这是第一部分。
下一部分是我们将 Renderer 与 GanttChart 对象本身连接起来,并告诉 Chart 在哪里可以找到每个项目所需的 Renderer。
我使用的两行如下:
GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
new myTimelineObject().getClass(),new myTimelineObjectRenderer());
所以,我最终到达了那里,让它发挥了作用,并且对 FlexGantt 包的灵活性印象深刻。
于 2009-05-28T01:55:22.097 回答