我有班级直方图,我很乐意随着时间的推移更新他的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();
}
答案 0 :(得分:1)
如果没有实现自己的HistogramDataset
版本,我认为这是不可能的,因为在添加数据集时会评估直方图。
如果您确实实施了自己的HistogramDataset
版本,请将代码基于HistogramDataset #addSeries
,并记住最后致电fireDatasetChanged()
。
答案 1 :(得分:1)
JFreeChart中包含一个替代数据集实现:SimpleHistogramDataset。这个允许您继续添加新值(通过addObservation()/addObservations()
方法)。