1

大きなカスタムコントロールが内部に刻まれているJScrollPaneか、他の理由でクリップされているとします。メソッド内からpaintComponent()どの座標をペイントするかを決定する方法は?

4

2 に答える 2

4

AWTとSwingのPaintingを見てください。優れた説明があります。

ただし、一般的な要点は、コンポーネントがペイントされたときに、そのクリッピング長方形が、更新する必要のある表示領域にすでに設定されていることです(nbは、ビューポートでこれがどのように機能するかを確認する必要がありますが、同じだと思います)。

グラフィックスコンテキストのクリップ長方形をペイントメソッドまでチェックして、更新する領域を決定できます。

于 2013-02-13T21:03:12.310 に答える
2

JScrollPane ビューポートは次のように見つけることができます

jScrollPane.getViewport()

そこに入ると、 JScrollPaneによって示される長方形を知ることができます。

jScrollPane.getViewport().getViewRect()

そのため、その長方形を使用してカスタムコンポーネントをペイントできます

よろしく

于 2013-02-13T21:22:49.297 に答える