1

假设我有很大的自定义控件刻在里面JScrollPane或被其他原因剪掉了。如何从paintComponent()方法中确定要绘制哪些坐标?

4

2 回答 2

4

看看在 AWT 和 Swing 中的绘画,它有一个很好的解释。

但一般的要点是,当你的组件被绘制时,它的剪切矩形已经设置(nb 需要检查这对于视口是如何工作的,但我怀疑它是相同的)到需要更新的可见区域。

您可以检查 Graphics 上下文的剪辑矩形过去到您的绘画方法,并确定您应该更新哪个区域。

于 2013-02-13T21:03:12.310 回答
2

您可以通过以下方式找到JScrollPane

jScrollPane.getViewport()

一旦在那里,您就可以知道JScrollPane显示的矩形

jScrollPane.getViewport().getViewRect()

所以你可以用那个矩形来绘制你的自定义组件

问候

于 2013-02-13T21:22:49.297 回答