2
我在Vaadin通过JFreeChartWrapper使用JFreeChart的,并有上绘制它的问题。 图表的数据正在运行,可能需要一些时间。 所以我要补充进度指示器来通知图像加载用户(它关闭窗口前)。如何在jFreeChart中完成绘制条形图的事件?
我试图通过ProgressIndicator将临时布局,并用它来解决这个问题,直到接收从图表的一些事件:
final AbsoluteLayout loadLayout = new AbsoluteLayout();
loadLayout.setImmediate(true);
ProgressIndicator progress = new ProgressIndicator();
progress.setIndeterminate(true);
progress.setVisible(true);
loadLayout.addComponent(progress, "right: 500px; top: 200px;");
setContent(loadLayout);
与此同时,图表在另一个布局还说:
JFreeChart barChart = ChartFactory.createBarChart("Text", "", "", res, PlotOrientation.VERTICAL, true, false, false);
barChart.addProgressListener(new ChartProgressListener() {
@Override
public void chartProgress(ChartProgressEvent arg0) {
if (arg0.getType() == ChartProgressEvent.DRAWING_FINISHED) {
loadLayout.setVisible(false);
setContent(layout);
layout.setVisible(true);
}
}
});
JFreeChartWrapper chartWrap = new JFreeChartWrapper(barChart);
layout.addComponent(chartWrap);
但我得到的 - 只是进度指示器,我从来没有得到ChartProgressEvent。如果在JFreeChart中被解雇,我不会看到这个事件。
是否有可能解决这个问题,或者我应该更好地利用其他Vaadin插件的图表?
谢谢你的答复!但我不使用Swing,所以如果我将图表添加到ChartPanel,我还是应该图表添加到ChartWrapper在Vaadin显示。而我仍然没有收到活动。 – 2012-04-21 06:30:13