是否有在 AWT/SWING 中查找点颜色的功能

问题描述

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

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

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

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

谢谢。

解决方法

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

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

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