2012-04-20 6 views
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プラグインを使用してください。

答えて

1

このようなイベントを受信するには、ChartPanelにチャートを追加する必要があります(hereを参照)。

+0

ありがとうございました!しかし、私はSwingを使用しないので、チャートをChartPanelに追加する場合は、チャートをChartWrapperに追加してVaadinに表示する必要があります。私はまだイベントを受け取ることはありません。 –

関連する問題