2011-07-17 14 views
0

の色:jChart2D - 次のコードを考えるとTracePoint2D

chart = new Chart2D(); 
    trace = new Trace2DSimple(); 
    trace.setTracePainter(new TracePainterVerticalBar(chart)); 
    chart.addTrace(trace);  
    // default tracepainter color is Black 

    TracePoint2D first = new TracePoint2D(0, 1); 
    TracePoint2D second = new TracePoint2D(1, 10); 
    TracePoint2D third = new TracePoint2D(2, 20); 

    PointPainterVerticalBar red = new PointPainterVerticalBar(10,chart); 
    red.setColor(Color.red); 

    PointPainterVerticalBar green = new PointPainterVerticalBar(10,chart); 
    green.setColor(Color.green); 

    PointPainterVerticalBar blue = new PointPainterVerticalBar(10,chart); 
    blue.setColor(Color.blue); 


    first.addAdditionalPointPainter(red); 
    second.addAdditionalPointPainter(green); 
    third.addAdditionalPointPainter(blue); 

    trace.addPoint(first); 
    trace.addPoint(second); 
    trace.addPoint(third); 

あなたは私がチャート上に色の異なる三つの異なるトレースポイントを取得しようとしていますが、どういうわけか、それらはすべて黒のままに見ることができるように。何か案は ?

答えて

1

Trace-とPointPainterを実装するだけで完全に可能です。あなたはtracepainter.setColor(Color.whatever)で設定し、実際のグラフィックスに適用する色に関する明示的PointPainer内すると

public TracePainterBlank(final int barWidth, final Chart2D chart) { 
    this.m_pointPainter = new PointPainterBlank(barWidth, chart); 
} 

:新しいTracePainter以内 はあなたの新しいPointPainterを使用することを教え

public void paintPoint(final int absoluteX, final int absoluteY, final int nextX, 
    final int nextY, final Graphics g, final ITracePoint2D original) { 
    g.setColor(this.getColor()); 
    g.fillRect(absoluteX - this.m_halfWidth, absoluteY, 2 * this.m_halfWidth, this.m_chart 
    .getYChartStart() 
    - absoluteY); 
} 

ことそれぞれのTracePointを個別に色付けできます。

0

jChart2Dでは、個々の点の色ではなく、「トレース」にのみ色を設定できると思います。

0

赤色に3回だけ色を設定するとコードがバグです。

しかし、あなたが書いているように黒く残っているので、バグがあります(そのコードは最近変更されました)。その場合、sourceforgeにバグを投稿することを検討してください。

HTH、 アヒム

+0

おかげで、私はそれを修正 - しかし、私は別のTracePainterを実装することでこれを回避する方法を見つけました – krichard

関連する問題