4

Javaで軽量コンポーネントと重量コンポーネントを混在させることに問題がありました。

奇妙なスイングのヘビー級と軽量のミキシングの問題

(stackoverflowの外で)私に提案された解決策は、システムプロパティをtrueに設定することsun.awt.noerasebackgroundでしsun.java2d.noddrawた。

この変更がSwingベースのJavaアプリケーション(WinXPで実行され、多くのSwingコンポーネントを備えている)にどのような影響を与える可能性があるかを知りたいです。

どのような問題が発生する可能性がありますか?パフォーマンスに影響はありますか?他の何かが機能しなくなる可能性がありますか?

ありがとう、Yoav

4

1 に答える 1

2

AWT コンポーネントは、再描画するたびに背景を塗りつぶします。プロパティを true に設定するsun.awt.noerasebackgroundと、グラフィック コンテキストで新しいコンテンツが描画されるまで、現在表示されていたものが残ります。これにより、通常、パフォーマンスが向上し、ちらつきが減少します。また、AWT コンポーネントが完全に塗りつぶされている場合でも、描画のアーティファクトは発生しません。

sun.java2d.noddraw直接描画を無効にします。これは、ドライバーが問題を引き起こしている場合に役立ちますが、パフォーマンスが低下する可能性があります。

于 2011-02-22T22:41:32.437 に答える