首页 > 解决方案 > 是否有在 AWT/SWING 中查找点颜色的功能

问题描述

因此,我创建了这个小迷宫构建算法(试图了解 Java AWT 和 Swing 的工作原理)。

现在,我使用 Graphics(绘制方法)来创建迷宫本身,这意味着我没有将它存储在任何地方。现在我想知道是否有办法知道在 JFrame 上给定的特定点是否有办法判断它是哪种颜色?如果是这样,我该怎么做?比方说,例如在我的迷宫中,我想看看紫色点上的颜色是什么(看看那里基本上是不是一堵墙)。

https://i.stack.imgur.com/DfQon.png

有没有办法做到这一点,还是我必须解决这个问题?

谢谢。

标签: javaswingawt

解决方案


没有直接访问 aComponent的图像缓冲区的方法。但是有两种间接的方式。

  1. (更好)创建一个与组件具有相同高度和宽度的图像(BufferedImage 或 Component.createImage)。然后就可以运行了myComponent.paint(myBuffer.getGraphics());。这将在图像上绘制组件,从那里您可以获得Color您感兴趣的像素

  2. (替代)您可以使用 java.awt.Robot 在图像中捕获屏幕。使用与上述类似的图像


推荐阅读