パフォーマンスの高いスイングコンポーネントを作成する方法について質問があります。
コンポーネントは、ある種の棒グラフを描画する必要があります。コンポーネントのデータは、個別のFIFOバッファクラスに格納されます。バッファが更新されるたびに、コンポーネントに通知されます。
現時点では、コンポーネントはデータが変更されるたびにBufferedImageを描画します。次に、棒グラフコンポーネントのpaintComponentメソッドは、作成されたBufferedImageを描画します。
私のアプリケーションには多くのデータ変更があるという事実のために、私はBufferedImageのペイントを改善することを考えています。棒グラフのほとんどは同じままです。右にシフトされ、最新のデータ変更が棒グラフの左側に追加されます。
現時点では、BufferedImage全体がバッファに保存されているデータから再作成されます。私が考えることができるのは、AffineTransformationを使用して古いBufferedImageをシフトし、最近追加されたデータのみを追加することです。これにより、BufferedImageでの描画操作の量が大幅に減少します。
しかし、これでアプリケーションが高速化されるかどうかはわかりません。BufferedImageのAffineTransformationはどれくらいの費用がかかりますか?
どんな発言でも大歓迎です。また、パフォーマンスの高いスイングアプリケーションを作成する方法に関するその他のヒントもあります。
前もって感謝します