سؤال

وأنا باستخدام حزمة سوينغ FlexGantt Javax ( http://www.dlsc.com/ ) لعرض بعض مخططات جانت. والمشكلة أواجه هو أنني لا يمكن معرفة كيفية تغيير لون DefaultTimelineObject أنني قد امتدت إلى الدرجة الخاصة. في الواقع، حول الألوان الوحيدة يبدو كنت قادرا على تغيير هي تلك التي هي على خلفية ألوان الصفوف جانت.

هل كانت مفيدة؟

المحلول 2

وهكذا لم يتمكن من هذا الرقم. انها نوع من التعقيد، أو على الأقل كان عليه بالنسبة لي، لأنني لم أكن (وما زال لا ليس تماما) فهم نمط نموذج للرؤية وحدة تحكم استخدامها من قبل FlexGantt. لذلك، وهنا أين نذهب. نحن بحاجة إلى الدرجة TimelineObjectRenderer الذي يمتد DefaultTimelineObjectRenderer. هذا العارض لديه أسلوب بإرجاع مكون، ودعا 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

وهذا هو الجزء الأول.

والجزء التالي هو حيث ربطنا هذا العارض مع الكائن مخطط جانت نفسها، ونقول للمخطط مكان العثور على العارض اللازمة لكل عنصر.

وسطرين استعملتها لذلك هي كما يلي:

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