2013-04-17 88 views
0

我正在做一個學校項目,我一直堅持這個問題一週。我無法弄清楚如何在jfreechart創建後對其進行註釋。在JFreeChart創建後繪製

眼下的程序是這樣的 - >My program

用戶應該能夠畫線或用鼠標點擊圖表上添加字符串。有人知道如何做到這一點?

如何擴展了ChartPanel:

import java.awt.Graphics; 

import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 

public class ExChartPanel extends ChartPanel { 
private static final long serialVersionUID = 1L; 
String txt="Can add Strings before creating chart"; 

public ExChartPanel(JFreeChart chart){ 
    super(chart); 
} 

public void paintComponent(Graphics g){ 
    super.paintComponent(g); 
    g.drawString(txt, 100, 100); 
} 

public void setTxt(String txt) { 
    this.txt = txt; 
    repaint(); 
}} 

現在,當我跑我可以得出字符串由圖表前......但是,如果在主框架按下按鈕來調用setTxt(「一些TXT」 ),它不更新面板上的文本。 同樣適用於線條和其他形狀。

回答

2

您需要擴展JFree ChartPanel才能添加此功能。

您的擴展類應該捕獲用戶操作,創建註釋並使用XYPlot.addAnnotation將其添加到底層JFreeChart。

如在ChartPanel API文檔中所述,只要收到任何更改通知,圖表就會自動重新繪製。

此外,請參閱ChartPanel源代碼以更好地理解API,並在這些API之上構建您的類。

+0

謝謝你的回答。 我把我的ChartPanel擴展的例子不起作用...如何編輯它? – Noripsni