动态直方图JFreeChart

时间:2014-05-14 15:17:28

标签: dynamic jfreechart histogram

我有班级直方图,我很乐意随着时间的推移更新他的vaules。你能告诉我怎么用计时器吗? :P我一直只有4个箱子。另外我有一个线程,我在其中更改Calculation.n随着时间的推移是否可以锁定线程直到更新直方图?虽然我不需要在计时器上做这件事但我只是想每次" n"更改其值直方图以进行更新。

public class Histogram extends JPanel  {

/**
 * 
 */
private static final long serialVersionUID = 8582587439869049160L;



public Histogram() {
    // TODO Auto-generated constructor stub
    setVisible(true);
    final HistogramDataset dataSet = new HistogramDataset();
    final double particles[] = {Calculation.n,Calculation.n1,Calculation.n2,Calculation.n3};
    dataSet.addSeries("How many particles passed", particles, 4);

     Timer timer = new Timer(250, null);
     timer.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

            }
        });
     timer.start();


    JFreeChart histogram =ChartFactory.createHistogram(
            "Histogram",
            null,
            null,
            dataSet,
            PlotOrientation.VERTICAL,
            true,
            true,
            false);
    ChartPanel chartPanel = new ChartPanel(histogram);
    add(chartPanel);
    revalidate();


}

2 个答案:

答案 0 :(得分:1)

如果没有实现自己的HistogramDataset版本,我认为这是不可能的,因为在添加数据集时会评估直方图。

如果您确实实施了自己的HistogramDataset版本,请将代码基于HistogramDataset #addSeries,并记住最后致电fireDatasetChanged()

答案 1 :(得分:1)

JFreeChart中包含一个替代数据集实现:SimpleHistogramDataset。这个允许您继续添加新值(通过addObservation()/addObservations()方法)。