1

我如何“读取”组件下方的图形信息 (比如说BufferedImage)?

我想让该组件半透明(已经完成)并对底层内容应用图形效果,例如模糊该组件下的所有元素(但不是组件本身)。

我的方法可能是错误的:我尝试从Paint(...)
方法 中提供给我的 Graphics2D 实例获取图形信息,但它是空的,对吗?

4

1 回答 1

1

问题:您的组件是顶层的(即,您想知道 JFrame 下的桌面上有什么),还是只想知道组件下方的组件?

java.awt.Robot如果是1),那么用方法截屏就很简单了createScreenCapture(Rectangle);在这种情况下,Rectangle应该是你的窗口边界。

如果是 2),那么如果你有一个对下面组件的引用,你可以利用paint(Graphics)不关心Graphics对象来自哪里的事实。您可以创建一个BufferedImage,调用createGraphics()(如果需要 a Graphics2D),并将结果传递给paint(Graphics)您要捕获的组件的方法。
注意,如果组件是一个容器,它也会绘制它的孩子;这可能是也可能不是你想要的。

于 2009-05-19T14:02:29.330 回答