6

更新リクエストがswingに配信されると(たとえば、サイズ変更や別のウィンドウによるブロックが原因でシステムがトリガーされるか、repaint()メソッドの呼び出しなどがアプリによってトリガーされる)、このリクエストは実際にどのように処理されますか?そのRepaintManagerでどのような手順が実行されますか?

4

1 に答える 1

3

あなたのコメントから:

peer.getGraphics() で何が起こるか知っていますか?

それは、どのピア実装が使用されているかによって異なります。

1 つの実装WComponentPeer(Windows での実行時に使用) は、Graphicsオブジェクトを取得するために 2 つの方法を使用するようです。

  1. コンポーネントに型の親Window(またはそれ自体) があり、その親にバック バッファー イメージが関連付けられている場合、そのイメージのGraphicsオブジェクトが返されます。SunGraphics2Dこれはイメージのタイプによって異なりますが、 で作成されたインスタンスである可能性が最も高いcreateGraphics()です。

  2. それ以外の場合は、ScreenUpdateManagerインスタンスが取得さcreateGraphics(...)れて呼び出され、新しいSunGraphics2Dインスタンスが返されます。

これは可能な方法の 1 つにすぎず、使用する OS、JVM、および UI ツールキットに大きく依存することに注意してください。

于 2012-05-12T06:59:18.847 に答える