JfreeChart LineAndShapeRenderer,如何为Line设置setOutlinePaint?

时间:2015-07-13 09:00:56

标签: java jfreechart

我在将一个OutlinePaint设置为JFreeChart中LineAndShapeRenderer的一行时遇到了问题。

我发现这篇文章http://www.jfree.org/phpBB2/viewtopic.php?f=3&t=28347&p=78648&hilit=outlines+2d+line#p78648也描述了我的问题。

David.Gilbert写道"你必须修改LineAndShapeRenderer代码,因为现在它只是在数据点之间绘制一条线(使用seriesPaint)。"这是在2009年,我无法找到任何今天的解决方案。

是否有人知道如何修改LineAndShapeRenderer以设置线的轮廓。

谢谢你们。

1 个答案:

答案 0 :(得分:2)

您必须覆盖drawItem()LineAndShapeRenderer方法。在您的实施中,您需要使用公共访问者重新概括现有代码,如XYLineAndShapeRenderer所示fill()。现有的here使用图形上下文的draw()方法来渲染形状,使用draw(line)来描绘其轮廓;每次调用都可以有不同的绘画设置。 Stroke没有类似的二分法,但您可以使用复合draw()获得相似的效果,如implementation所示。

  

我不知道如何设置每种颜料。

从此示例开始,Line2D Stroke一种颜色和默认Line2D shape = new Line2D.Double(PAD, PAD, SIZE - PAD, SIZE - PAD); g.setColor(Color.blue); g.draw(shape);

draw()

CompositeStroke使用其他颜色的轮廓和BasicStroke s1 = new BasicStroke(16f); BasicStroke s2 = new BasicStroke(1f); g.setStroke(new CompositeStroke(s1, s2)); g.setColor(Color.red); g.draw(shape);

PROGRAM VECT_TEST
IMPLICIT NONE

INTEGER :: L(1024)
INTEGER :: I

DO I = 1, 1024
  L(I) = I
END DO

DO I = 1, 1024
  L(I)=L(I) + 1
END DO

PRINT *, L

END PROGRAM

另请参阅此相关here

image