0

我正在做一个学校项目,我已经被这个问题困扰了一周。我不知道如何在创建 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"),它不会更新面板上的文本。线条和其他形状也是如此。

4

1 回答 1

2

您需要扩展JFree ChartPanel以添加此功能。

您的扩展类应该捕获用户操作、创建注释并使用XYPlot.addAnnotation.

ChartPanelAPI 文档中所述,每当收到任何更改通知时,都会自动重绘图表。

此外,请参阅ChartPanel源代码以更好地理解 API 并在这些 API 之上构建您的类。

于 2013-04-17T18:10:28.670 回答