Java 如何在jFreeChart中获取完成绘制条形图的事件?

Java 如何在jFreeChart中获取完成绘制条形图的事件?,java,jfreechart,vaadin,Java,Jfreechart,Vaadin,我在Vaadin中通过JFreeChartWrapper使用jFreeChart,在绘制它时遇到问题。 图表的数据正在运行时获取,可能需要一些时间。 所以我想添加进度指示器来通知用户图像加载(在它关闭窗口之前) 我试图通过为ProgressIndicator添加临时布局并使用它来解决此问题,直到从图表接收到一些事件: final AbsoluteLayout loadLayout = new AbsoluteLayout(); loadLayout.setImmediate(true); Pro

我在Vaadin中通过JFreeChartWrapper使用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);
但我得到的只是一个进度指标,我从来没有得到任何进展。如果在JFreeChart中触发,我看不出这个事件在哪里


是否可以修复它,或者我最好使用其他用于图表的Vaadin插件?

要接收此类事件,您需要将您的图表添加到
图表面板中,如前所述。

谢谢您的回复!但是我不使用Swing,所以如果我要将图表添加到ChartPanel中,我仍然应该将图表添加到ChartWrapper中,以便在Vaadin中显示。我仍然没有收到这个事件。