java - 如何在 Swing 中仅绘制自定义控件的可见区域?

标签 java swing jscrollpane invalidation

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

最佳答案

看看Painting in AWT and Swing , 它有一个很好的解释。

但一般的要点是,当您的组件被绘制时,它的剪裁矩形已经设置为需要更新的可见区域(注意需要检查它对视口(viewport)的工作方式,但我怀疑它是一样的)。

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

关于java - 如何在 Swing 中仅绘制自定义控件的可见区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14862927/

相关文章:

java - 当我选择第一行时,为什么我的 JTable 重绘会发生堆栈溢出?

java - 为什么子 JComponent 没有调用 Paint(Graphics g)?

java - 滚动时 JScrollPane 不重新绘制 Canvas?

java - 取消异步调用

Java JPanel 清除

java - 在 java SDK 中模拟 Azure 存储 Blob

java - Swing JScrollPane 调整大小以适合视口(viewport)面板

java - GridView 条目是自下而上添加的

java - 获取 JTable 中已更改/添加或删除的行

java - 使特定组件在 Scrollable JPanel 中可见