0

Swing の再描画管理に行き詰まっています。コンポーネントの背景をぼかしたい。BufferedImage を使用して、コンポーネントでカバーされているものをキャプチャしてぼかします。paintComponent() では、ぼかした画像を背景としてペイントします。

コンポーネントが完全に再描画された場合はすべて正常に動作しますが、次のシナリオでは問題を克服できません。

  • コンポーネントは私のコンポーネントによって覆われていますが、完全には重なっていません
  • 再描画が実行される前に、グラフィック オブジェクトへの変更を制限する RepaintManager によってクリップ (遮蔽されたコンポーネントを覆う部分領域) が設定されます。
  • ユーザー クリップの設定/クリアは、常にこのクリップ領域と交差します
  • 新しいグラフィックス オブジェクトの作成は、常にコピーであるか、このクリップ領域と交差します
  • ペイントしたい画像がぼやけているため、RepaintManager で設定したクリップの外側にピクセルを描画する必要があります

RepaintManager によって設定されたクリップに関係なく、コンポーネントが paintComponent() ですべてのピクセルをペイントできることを確認するにはどうすればよいですか?

助けていただければ幸いです。

事前に助けてくれてありがとう。

4

0 に答える 0