2011-11-28 6 views
2

제 애플리케이션에서는 데이터를 테이블에 표시 할뿐만 아니라 이중 축 막대/선 JFreeChart를 통해 표시합니다. 일부 공간을 절약하기 위해 (도표가 PNG로 저장되고 iText PDF로 PDF로 저장되므로) 도표를 범례에서 가져 와서 표 형식으로 사용하고 범례를 제거하려고했습니다.JFreeChart 범례 그래픽보기

범례 항목에 거짓말 아이콘을 잡아 수있는 방법이 있습니까? 나는 LegendItem에서 아이콘을 검색 할 수있는 방법이 될 것 같은 듯 LegendGraphic 클래스를 발견했다, 그러나 않습니다 나타냅니다 LegendItem에 대한 설명서에서 아무것도 발견하지 않았습니다.

또는 java.awt.Image과 같이 com.itextpdf.text.Image을 쉽게 만들 수있는 객체로 반환되는 것이 바람직합니다.

답변

2

차트 렌더러의 getLegendItem() 방법을 사용하여 일련의 'LegendItem를 얻을 수 있습니다. 이 example과 같이 ShapeUtilities의 방법을 사용하여 시리즈 'Shape을 변경할 수 있습니다. createStandardSeriesShapes()의 작동 방식에 대한 자세한 내용은 DefaultDrawingSupplier을 참조하십시오.

부록 : 렌더러의 getLegendItem() 메서드는 범례없이 차트를 만들거나 나중에 chart.removeLegend()을 사용하는 경우에도 작동합니다. LegendItem이 있으면 필요에 따라 속성을 사용할 수 있습니다. 예제에 대한

System.out.println(renderer.getLegendItem(0, 0).getShape()); 
System.out.println(renderer.getLegendItem(0, 0).getFillPaint()); 
+0

감사합니다. 이렇게하면 Graphics2D를 사용하여 일부 모양 등을 그릴 수있는 지점으로 이동하게됩니다. 나는 API에 전설 아이콘을 재구성하지 않아도되는 무언가가 있었으면 좋겠지 만, 그래도 작동 할 것입니다. 다시 한번 감사드립니다. – king14nyr

+0

'LegendItem'의 일시적인 속성은 범례가 렌더러와 동기화되도록합니다. 'RendererChangeListener'를 구현하고 테이블을 렌더러에 등록 할 수 있습니다. – trashgod

+0

이 [참고] (http://stackoverflow.com/a/13309587/230513)도 참고하십시오. – trashgod