3

このプロセスでのJPanelを呼び出さずに、に垂直線を描画し、その上を滑らせたいと思います。私は使用することを考えましたが、フレームにを含む他のコンポーネントがあるため、それは正しい方法ではないと思います。したがって、それはそれに固有ではありません(そして実際にそれが呼び出されないかどうかはわかりませんとにかく)。paintComponent()JPanelGlassPaneJPanelpaintComponent()

何か案は?

4

3 に答える 3

2

GlassPaneを使用しても、基礎となるコンポーネントはある時点で再ペイントする必要があります。paintComponentJPanelへの電話を避ける良い方法はありません。

paintComponentただし、JPanelは塗装以外のことをしてはいけません。それを呼び出さないようにしている場合は、メソッドに何かをpaintComponent変更またはキャッシュする必要があるようです。

于 2011-05-18T16:02:23.687 に答える
2

ラインペイントコードを残りのペイントコードから分離したいだけの場合は、レイヤードペインを使用する必要があります。

ペイントコードが高価な場合は、BufferedImageを作成してから、paintComponent()コードでイメージを再描画する必要があります。これは、毎回最初から塗り直すよりも高速です。

于 2011-05-18T16:12:59.097 に答える
0

JPanelでpaintComponent()メソッドを呼び出さない理由はありますか?オブジェクトを塗り直して線を滑らせてレンダリングするのが、おそらく最も簡単な解決策です。

于 2011-05-18T19:37:34.653 に答える