Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FlexGant TimelineObject颜色更改_Java_Swing_Gantt Chart - Fatal编程技术网

Java FlexGant TimelineObject颜色更改

Java FlexGant TimelineObject颜色更改,java,swing,gantt-chart,Java,Swing,Gantt Chart,我正在使用FlexGant Javax Swing包()来显示一些甘特图。我遇到的问题是,我不知道如何更改已扩展到自己类中的DefaultTimelineObject的颜色。实际上,我似乎唯一能更改的颜色是甘特图行的背景色。您应该在FlexGant新闻组的 问候, 德克 (FlexGantt作者)所以我确实设法解决了这个问题。这有点复杂,或者至少对我来说是这样,因为我没有真正(现在仍然不太)理解FlexGant使用的模型-视图-控制器模式。所以,这就是我们要去的地方。我们需要一个Timeline

我正在使用FlexGant Javax Swing包()来显示一些甘特图。我遇到的问题是,我不知道如何更改已扩展到自己类中的DefaultTimelineObject的颜色。实际上,我似乎唯一能更改的颜色是甘特图行的背景色。

您应该在FlexGant新闻组的

问候,

德克
(FlexGantt作者)

所以我确实设法解决了这个问题。这有点复杂,或者至少对我来说是这样,因为我没有真正(现在仍然不太)理解FlexGant使用的模型-视图-控制器模式。所以,这就是我们要去的地方。我们需要一个TimelineObjectRenderer类来扩展DefaultTimelineObjectRenderer。该渲染器有一个返回组件的方法,名为GetTimeLineObjectRenderComponent。在该方法中,我需要调用方法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
这是第一部分

下一部分是将渲染器与GantChart对象本身连接起来,并告诉图表在哪里可以找到每个项目所需的渲染器

我使用的两行代码如下:

GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
          new myTimelineObject().getClass(),new myTimelineObjectRenderer());
所以,我最终到达了那里,使它工作起来,并且对FlexGant软件包的灵活性印象深刻