java - Swing:如何读取组件下面的图形信息?

标签 java user-interface swing graphics effects

我如何“读取”组件下面的图形信息 (假设为 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/

相关文章:

java - 这里如何防止数字格式异常?

java - 构建器模式的 Eclipse 格式化程序设置

r - 如何让 R Shiny downloadHandler 文件名起作用?

java - 如何显示 ANTLR 树 GUI

java - 类 javax.swing.Popup 实验

java - 确定组件可能扩展的区域大小

java - 主方法完成后的 Swing 计时器持久性

java - Spring MVC + Spring Data,在服务上注入(inject)存储库时出错

java - 检查 Field[] 是否包含名称为 XXX 的字段

model-view-controller - 你知道 PAC 设计模式的任何例子吗?