java - 获取 JLabel 中具有特定坐标的像素的颜色

标签 java swing colors awt

我正在编写一个程序,其中我需要查找图像中单击的像素的颜色(图像存储为 JLabel),并计划使用 AWT 机器人来完成这项工作。但是,据我所知,我无法将 AWT 机器人与特定标签关联起来;它作用于整个 GraphicsDevice。以下命令:

    Robot r = new Robot();
    Color c = r.getPixelColor(42, 42);

将获取屏幕上坐标为 (42, 42) 的像素的颜色,而不是 JLabel 内坐标为 ( 42, 42)(即从 JLabel 左上角向右 42 像素,向下 42 像素)。如何获取 JLabel 中具有特定坐标的像素的颜色?

如果有帮助的话,我的 JLabel 中还有一个 MouseListener 对象。

最佳答案

您可以获得 Swing/AWT 的屏幕坐标 Component使用:

Component.getLocationOnScreen()

然后只需使用 getPixelColour 获取这些坐标加上您的偏移量 42、42 或其他值。

关于java - 获取 JLabel 中具有特定坐标的像素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833094/

相关文章:

java - 通过调用另一个类的方法来更新信息

java - Cellrenderer 更改单元格背景颜色还更改值格式、对齐方式

java - 更改文本时标记不清楚的文本

C# - 创建字符串到特定范围之间的整数的哈希值

ios - iOS 中的随机颜色

java - Android 对话框中的按需附加功能

Java正则表达式替换问题

java - 撇号 chop 输入字段中的值

java - 使用 Swing 在 Pane 中选择文件

java - 如何动态创建一个包含 n 行的 Swing 列表,其中我为每一行放置 2 个数据