ホームページ > Java > &#&チュートリアル > GUI で JFreeChart シリーズを更新する際のランダム エラーを回避するにはどうすればよいですか?

GUI で JFreeChart シリーズを更新する際のランダム エラーを回避するにはどうすればよいですか?

DDD
リリース: 2024-12-17 16:27:10
オリジナル
895 人が閲覧しました

How Can I Avoid Random Errors When Updating JFreeChart Series in a GUI?

JFreeChart を使用して系列を変更する際のランダム エラー

バックグラウンド計算の結果を表示する GUI を開発する場合、一般的なタスクは、新しい情報が追加されるとグラフのデータを更新することです。利用可能。 JFreeChart を使用すると、基礎となるデータセットを変更することでこれを実現できます。ただし、データセットが頻繁に変更されたり、非同期で変更されたりすると、「シリーズ インデックスが範囲外」または「インデックスが範囲外」例外などのエラーが発生する可能性があります。

これらの問題を解決するには、次の手順を実行します。 SwingWorker の process() メソッドからデータセットを更新することをお勧めします。これにより、スレッドの安全性が確保されます。さらに、グラフのドメインが時間ではなく反復回数を表す場合は、DateAxis の代わりに NumberAxis を使用することが適切です。

例:

次のコードは、SwingWorker を使用して折れ線グラフをリアルタイムで更新する方法を示しています。

private XYSeries series = new XYSeries("Result");
...
@Override
protected void process(List<Double> chunks) {
    for (double d : chunks) {
        label.setText(df.format(d));
        series.add(++n, d);
    }
}
ログイン後にコピー

このコードスニペットは XYSeries を使用してデータ ポイントを保存し、SwingWorker の process() メソッドでシリーズを更新します。ラベルも更新され、現在の値が表示されます。

追加の考慮事項:

  • ドメインが反復数を表す場合は、ドメインと範囲の両方に NumberAxis を使用します。
  • データセットがスレッドセーフなメソッド (例: process() メソッド) から更新されていることを確認します。 SwingWorker。
  • パフォーマンスの問題が発生する可能性があるため、データセットを頻繁に更新しないでください。

以上がGUI で JFreeChart シリーズを更新する際のランダム エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート