给定以下代码:
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);正如您所看到的,我试图将三种不同颜色的TracePoints添加到图表中,但不知何故,它们都保持为黑色。有什么想法吗?
发布于 2011-07-18 15:43:09
这是完全可能的,只要实现你自己的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着色。
发布于 2011-07-18 02:56:19
我认为在jChart2D中,你只能设置一个“轨迹”的颜色,而不能设置单个点的颜色。
发布于 2011-07-19 01:09:03
您的代码有buggy,因为您只将颜色设置为红色三次。
但是当你写的时候它仍然是黑色的,我担心有一个bug (代码最近被改变了)。因此,如果是这样的话,可以考虑在sourceforge上发布一个bug。
HTH,Achim
https://stackoverflow.com/questions/6725255
复制相似问题