2015-07-13 47 views
0

我在JFreeChart中將OutlinePaint設置爲LineAndShapeRenderer的一行時遇到了問題。JfreeChart LineAndShapeRenderer,如何setOutlinePaint for Line?

我找到這篇文章http://www.jfree.org/phpBB2/viewtopic.php?f=3&t=28347&p=78648&hilit=outlines+2d+line#p78648,它也描述了我的問題。

David.Gilbert寫道:「你必須修改LineAndShapeRenderer代碼,因爲現在它只是在數據點之間畫一條線(使用seriesPaint)。」這是在2009年,我找不到任何今天的解決方案。

有沒有人有一個想法如何修改LineAndShapeRenderer來設置該行的輪廓。

謝謝你們。

回答

2

您必須重寫LineAndShapeRendererdrawItem()方法。在您的實施中,您需要使用公開訪問者重新列出現有代碼,如所示,here。現有的implementation使用圖形上下文的fill()方法呈現形狀,並使用draw()來突出其輪廓;每個調用可以有不同的繪圖設置。 draw(line)不存在類似的二分法,但您可以使用複合Stroke獲得類似的效果,如here所示。

我不知道如何設置每個油漆。

啓動形式這個例子中,draw()一個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); 

參見本相關example

image

+0

我選用與CompositeStroke的方式,但我不知道如何設置各種油漆。 – CrazyFisch

+0

@CrazyFisch:我已經詳細闡述過了。 – trashgod