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

有帮助吗?

解决方案 2

所以我确实设法解决了这个问题。它有点复杂,或者至少对我而言,因为我并没有真正(并且仍然不太)理解FlexGantt使用的模型 - 视图 - 控制器模式。所以,这就是我们去的地方。我们需要一个扩展DefaultTimelineObjectRenderer的TimelineObjectRenderer类。该渲染器有一个返回Component的方法,名为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在哪里找到每个项目所需的渲染器。

我用过的两行如下:

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