0

FlexGantt Javax Swingパッケージ(http://www.dlsc.com/)を使用して、いくつかのガントチャートを表示しています。私が抱えている問題は、自分のクラスに拡張したDefaultTimelineObjectの色を変更する方法がわからないことです。実際、私が変更できると思われる色は、ガント行の背景色の色だけです。

4

2 に答える 2

0

この質問は、FlexGanttニュースグループ(http://groups.google.com/group/flexgantt )に投稿する必要があります。

よろしく、

Dirk(FlexGantt作者)

于 2009-03-10T09:48:21.023 に答える
0

だから私はこれを理解することができました。FlexGantt で使用される Model-View-Controller パターンをよく理解していなかった (そして今でも完全には理解していない) ため、これはちょっと複雑です。少なくとも私にはそうでした。では、ここからです。DefaultTimelineObjectRenderer を拡張する TimelineObjectRenderer クラスが必要です。そのレンダラーには、getTimelineObjectRendererComponent というコンポーネントを返すメソッドがあります。そのメソッドでは、setActivityFillColor1 と setActivityFillColor2 のメソッドを呼び出す必要がありました。これらは、アイテムの垂直方向のブレンドを作成するために使用される 2 つの色です。

重要なコードは次のとおりです。

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 を見つける場所を伝えるところです。

そのために使用した2行は次のとおりです。

GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
          new myTimelineObject().getClass(),new myTimelineObjectRenderer());

それで、私は最終的にそこにたどり着き、それを機能させ、FlexGantt パッケージの柔軟性に非常に感銘を受けました。

于 2009-05-28T01:55:22.097 に答える