假设我在JScrollPane
内刻有大型自定义控件或由于其他原因而被剪裁。如何从paintComponent()
方法中确定要绘制哪个坐标?
答案 0 :(得分:4)
看看Painting in AWT and Swing,它有一个很好的解释。
但一般的要点是,当你的组件被绘制时,它的剪切矩形已经设置(nb需要检查它对视口的工作原理,但我怀疑它是一样的)到需要更新的可见区域。 / p>
您可以检查图形上下文的剪辑矩形以及您的绘画方法,并确定您应该更新的区域。
答案 1 :(得分:2)
你可以找到 JScrollPane viewport
jScrollPane.getViewport()
在那里你可以知道 JScrollPane 所显示的矩形
jScrollPane.getViewport().getViewRect()
所以你可以 Rectangle 来绘制你的自定义组件
此致