2011-07-17 17 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告訴它使用新的PointPainter:

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

然後PointPainer內明確瞭解哪些你tracepainter.setColor(Color.whatever)設置並將其應用到實際的圖形的顏色:

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

您的代碼是越野車,因爲您只將顏色設置爲紅色三次。

但是,因爲它在寫入時仍然是黑色的,所以我擔心會有一個錯誤(代碼最近被更改了)。所以考慮在sourceforge發佈一個bug,如果是這樣的話。

HTH, 阿希姆

+0

謝謝,我糾正它 - 但我發現解決的辦法通過實施另一TracePainter – krichard