我如何“读取”组件下面的图形信息 (假设为 BufferedImage)?
我想让该组件半透明(已经完成) 并对底层的东西应用图形效果,例如模糊所有 该组件下的元素(但不是组件本身)。
我的方法可能是错误的:
我尝试从给我的 Graphics2D 实例中获取图形信息
在 paint(...) 方法中,但它是空的,对吗?
最佳答案
问题:您的组件是顶级组件(即,您想知道 JFrame 下桌面上有什么),还是只想了解该组件下面分层的组件?
如果是 1),那么使用 java.awt.Robot
抓取屏幕截图就很简单了方法createScreenCapture(Rectangle)
;在这种情况下,矩形
应该是您的窗口边界。
如果是 2),那么如果您有对下面组件的引用,则可以利用 paint(Graphics)
的事实。不关心 Graphics
对象来自哪里。您可以创建一个 BufferedImage,调用 createGraphics()
(如果需要 Graphics2D
),并将结果传递给您要捕获的组件的 paint(Graphics)
方法。
请注意,如果组件是容器,它也会绘制其子组件;这可能是也可能不是您想要的。
关于java - Swing:如何读取组件下面的图形信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882307/