2

JFreeChartライブラリを使用してチャートを作成しています。同じチャートに大量のデータを表示する必要があります。そのため、私は多くの範囲軸の説明を持っています。残念ながら、範囲軸が多すぎると、グラフが表示されなくなります。この単純な線を呼び出すことにより、チャートを表示することができます(プロットがXYPlotインスタンスである場合)。

int axises = plot.getRangeAxisCount();
for (int i = 0; i < axises; i++) {
   plot.getRangeAxis(i).setVisible(false);
}

コードのこの単純な部分は、すべてのRangeAxesを非表示にします。そのコード実行後、チャートには範囲軸の説明はありませんが、表示されます。

しかし、残念ながら、処理時間中にチャートが表示されているかどうかをどのように判断できるかわかりません。

私にとって重要な情報は次のとおりです。

chartPanel.getChartRenderingInfo().getPlotInfo().getDataArea().getWidth()

しかし、残念ながら、私はチャートに対して多くの操作(ズーム、移動など)を実行しているため、チャートの状態が変化するたびにこの情報を取得する必要があります。プロットがないため(このイベントは発生しません)、PlotChangeListenerインターフェイスのplotChanged()メソッドが呼び出されるたびにその情報を取得できません。ChartChangeListenerのchartChanged()メソッドの起動が早すぎます-chartPanel.getChartRenderingInfo()。getPlotInfo()。getDataArea()。getWidth()は古い値を返します。何か案は?

4

1 に答える 1

2

ChartProgressListenerにを追加できますChartPanel

chart.addProgressListener(new ChartProgressListener() {

    @Override
    public void chartProgress(ChartProgressEvent event) {
        System.out.println(event.getType() + " "
            + event.getPercent() + " "
            + chartPanel.getChartRenderingInfo()
                .getPlotInfo().getDataArea().getWidth());
    }
});
于 2013-01-14T13:56:02.147 に答える