java - 如何从 JFrame 屏幕截图中删除标题栏?

标签 java swing screenshot jframe

我正在通过“双缓冲”方法捕获 JFrame 的屏幕截图,如下所示:

public BufferedImage getScreenshot() {      
  java.awt.Dimension dim = this.getPreferredSize();         
  BufferedImage image = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);            
  this.paint(image.getGraphics());      
  return image;     
}

其中 this 扩展了 JFrame。我得到的图像在标题栏所在的顶部有一个空白条。在不为标题栏分配额外空间的情况下捕获 JFrame 内容图像的最直接方法是什么?

最佳答案

您应该能够使用 Screen Image类(class)。只需将框架的内容 Pane (如果有菜单,则指定根 Pane )作为您想要其图像的组件。

或者您的基本代码应该可以工作,只需将内容 Pane (或根 Pane )指定为您要绘制的组件,而不是框架本身。

关于java - 如何从 JFrame 屏幕截图中删除标题栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515902/

相关文章:

java - 如何通过对类的引用来调用instanceof。

java - Spring 计划作业中的 Hibernate Lazy init 异常

java - 如何获取swing jslider的拇指图标?

android - 应用程序在后台运行时可以截屏吗?

python - 通过选择区域从 python 脚本截取屏幕截图

java - 按 “layer” 或 “type” 构造 Java 包?

java - 使用 FatJar 作为 native 库

java - 更新 jTable - 将 jTable 作为参数传递

java - GridBagLayout的weightx和weighty规范

ios - 截图方法: Skipping the Status Bar