我正在做一个学校项目,我已经坚持这个问题一个星期了。我无法弄清楚如何在创建jfreechart之后对其进行注释。
现在程序看起来像这样 - >
用户应该能够通过鼠标单击在图表上绘制线条或添加字符串。有人知道怎么做吗?
我如何扩展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(“some txt”),它不会更新面板上的文本。 线条和其他形状也一样。
答案 0 :(得分:2)
您需要扩展JFree ChartPanel
才能添加此功能。
您的扩展类应捕获用户操作,创建注释并使用XYPlot.addAnnotation
将其添加到基础JFreeChart。
如ChartPanel
API文档中所述,只要收到任何更改通知,图表就会自动重绘。
另外,请参阅ChartPanel
源代码以更好地理解API,并在这些API之上构建您的类。