Dynamic 动态直方图

Dynamic 动态直方图,dynamic,jfreechart,histogram,Dynamic,Jfreechart,Histogram,我有班级柱状图,我想随着时间的推移更新他的分数。你能告诉我怎么用定时器吗P我一直只有4个垃圾箱。另外,我有一个线程,我在其中更改计算。n随着时间的推移,是否可以锁定线程,直到直方图更新?虽然我不需要在定时器上做它,但我只希望每次“n”改变它的值直方图时更新 public class Histogram extends JPanel { /** * */ private static final long serialVersionUID = 8582587439869049160L;

我有班级柱状图,我想随着时间的推移更新他的分数。你能告诉我怎么用定时器吗P我一直只有4个垃圾箱。另外,我有一个线程,我在其中更改计算。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();


}

如果不实现您自己版本的
historogramdataset
,我认为这是不可能的,因为在添加数据集时会计算直方图


如果您确实实现了自己版本的
HistorogramDataSet
,请将您的代码基于
HistorogramDataSet#addSeries
,并记住在最后调用
fireDatasetChanged()

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

Tbh我不知道如何做。所以,也许在每次状态更改时添加序列并删除它们?我也无法设置删除/删除序列