0

我正在使用 FlexGantt Javax Swing 包 ( http://www.dlsc.com/ ) 来显示一些甘特图。我遇到的麻烦是我无法弄清楚如何更改已扩展到我自己的类的 DefaultTimelineObject 的颜色。实际上,我似乎能够改变的唯一颜色是甘特行的背景颜色。

4

2 回答 2

0

您应该在位于http://groups.google.com/group/flexgantt的 FlexGantt 新闻组中发布此问题

问候,

Dirk(FlexGantt 作者)

于 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 回答