Java 获取屏幕上的像素颜色?

2023-12-05

您好,我正在尝试获取 JFrame 上特定像素的颜色。

这是我的代码。我的镜框是红色的。

我遇到的问题是,当我单击框架时,它应该返回红色的 RGB 颜色,即 (255,0,0),但是当我单击不同的点时,有时会得到白色的 RGB 颜色 (255,255,255)我的代码有问题吗?

public class guiTest extends JFrame 
{

    private static Shape ellipse;   
     private static Robot rb;

    public guiTest()
    {
    super("4-connected approach");
    setLayout(new FlowLayout());
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    setSize(800,800);
    this.getContentPane().setBackground(Color.red);
    setLocationRelativeTo(null);
    addMouseListener(new MouseListener(){
        @Override
        public void mouseClicked(MouseEvent e) {
            System.out.println("Pixel:"+e.getX()+","+e.getY());             
            try {
                System.out.println(getPixel(e.getX(),e.getY()));
            } catch (AWTException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        }

        @Override
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub

        }


    });

}


public static Color getPixel(int x,int y) throws AWTException{
    Robot rb=new Robot();
    return rb.getPixelColor(x, y);
}   


public static void main(String[] args){
    guiTest frame=new guiTest();    
}

问题是你获取坐标的方式 -e.getX() and e.getY()-,因为它们是相对于JFrame(JFrame 的左上角为 (0,0))。

要获取像素的坐标,请使用:

public void mouseClicked(MouseEvent e) {
    Point p = e.getLocationOnScreen();

    System.out.println("Pixel:" + p.x + "," + p.y);
    try {
        System.out.println(getPixel(p.x, p.y));
    } catch (AWTException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

}

[额外]阅读本文以改进其他事情:当我运行这个小鼠标钩子应用程序时,为什么我的鼠标出现滞后?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 获取屏幕上的像素颜色? 的相关文章

  • ScrollPane滚动到底部问题

    我的 Java 应用程序中有 TextArea 并且我附加了很多文本行 我需要 ScrollPane 滚动到最后附加的 到 TextArea 的底部 我怎样才能做到这一点 您可以通过将插入符号位置移动到底部来做到这一点 这会自动滚动 Tex
  • Vim 插入模式下光标线颜色变化

    有一个很好的片段可以改变光标颜色 if term xterm rxvt use an orange cursor in insert mode let t SI
  • JTextPane 缩进

    有没有办法缩进文本块JTextPane import javax swing import java awt import javax swing text StyledDocument public class SimpleTextPan
  • JTextArea没有滚动条

    private JPanel contentPane public Driver setDefaultCloseOperation JFrame EXIT ON CLOSE setBounds 100 100 867 502 content
  • 如何读取文件,将数据放入JTable中,然后修改单元格/删除行并将数据保存到文件中? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要从 txt 文件中读取日期并将其放入 GUI 中的 JTable 中 然后修改一些记录或删除一些行并将新数据保存到文件中 我可以
  • 背景图像隐藏其他组件,例如按钮标签等,反之亦然

    如何解决此代码中组件的隐藏问题 代码运行没有错误 但背景图片不显示 如何更改代码以获取背景图像 使用验证方法时 它在validation 中创建错误 public class TEST public TEST String strm Jan
  • 如何在 C# 中以编程方式创建柔和的颜色?

    根据所需的颜色数量均匀分布地生成它们 如果指定的计数为 8 则看起来像这样 List
  • Material UI - 更改主题中的按钮文本颜色

    我在直接在 Material UI 主题中更改按钮文本颜色时遇到问题 更改主色 按钮字体大小效果很好 因此问题不在于传递主题 这是我的代码 import React from react import MuiThemeProvider cr
  • Cocos2d 变色精灵

    我需要我的精灵从一种颜色过渡到另一种颜色 然后不断地 比如蓝色 然后绿色 然后紫色 但我找不到任何好的动作 我想知道 我应该使用动画吗 或者是否有为此采取的联合行动 您可以使用 CCTintTo 操作来更改精灵的颜色 sprite runA
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 程序无法访问扩展 JPanel 类的 PaintComponent() 方法

    这是JFrame package client connection import java awt Dimension import java io ObjectInputStream import java io ObjectOutpu
  • 根据内容(行数)重置 JTable

    我有一个JTable在 JPanel 中 而 JPanel 又在Jframe The JTable从表中加载用户 数据库位于MySQL 我有一个使用的搜索引擎DNIs其中键对键 带有KeyTyped事件 正在更新表中的联系人 并仅显示符合浏
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • Java-创建离散彩虹颜色数组

    很难描述我想要做什么 我基本上想创建一个离散的彩虹渐变 这样对于 i 个 JButton 的任何一行 它们之间的颜色渐变都会看起来彩虹 我已经完成了以下操作 但它实际上只创建了一个红色渐变 然后是绿色渐变 然后是蓝色渐变 Color c n
  • JFrame 类型的方法 ... 未定义

    我正在尝试制作一个带有两个菜单列表的 gui 每个菜单列表有 3 个项目 我的问题是 当我单击某个项目时 出现错误 JFrame 类型的方法 displayList int AirplaneList 未定义 AirplaneControll
  • JPanel 无法使用 setSize 和 setPreferedSize

    请解释为什么它不起作用 您也可以发布解决方案来解决此问题 非常感谢您提前 public class Run extends JFrame Fields static JPanel jpanel private int x y Constru
  • 如何制作无限的jscrollpane?

    我之前已经实现过拖动滚动 但是创建无限滚动窗格的最佳方法是什么 当然不会有任何滚动条 我将实现拖动滚动 我想做的是在无限表面上实现动态加载 EDIT 当然 它实际上不会是无限的 我想问如何伪造它 您可以执行以下操作 AdjustmentCl
  • JSpinner 时间范围 + HH:MM 格式

    我正在尝试设置一个JSpinner从 00 00 运行到 02 00 所以我构建了这段代码 import javax swing JSpinner import javax swing SpinnerDateModel public cla
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem

随机推荐

  • C 中箭头运算符 (->) 的用法

    我正在读一本叫做 21 天自学 C 的书 我已经学会了 Java 和 C 所以我的学习速度要快得多 我正在阅读关于指针和 gt 箭 operator没有解释就出现了 我认为它用于调用成员和函数 就像相当于 点 运算符 但用于指针而不是成员
  • ASP.NET 中 APP_Data 文件夹的安全性

    我的 Microsoft Access DB 文件位于 APP DATA 文件夹中 我的服务器是 Windows 2003 我想知道保护此文件的最佳方法是什么 那么哪一种更安全呢 wwwroot App data 数据库 mdb or db
  • crti.o 文件丢失

    我正在使用 GNU 工具链构建一个项目 一切正常 直到我开始链接它 链接器抱怨它丢失 找不到crti o 这不是我的目标文件之一 它似乎与 libc 有关 但我不明白为什么它需要这个crti o 它不会使用库文件吗 例如libc a 我正在
  • 获取 GitHub 存储库的本地副本、跟踪更改并将更新推送回远程

    我在 GitHub 上有一个存储库 我想用对从中提取它的文件夹所做的更改来更新它 Git 新用户从使用的那一刻起就应该执行哪些步骤 不用行话或简写术语 cd directory 包括如何跟踪对任何文件所做的本地更改 以及如何将这些更改和更新
  • 一个框架。滚轮滚动放大

    我已经浏览了官方文档 但无法找到有关放大 缩小可能性的信息panorama图像 A 框架是否支持它 或者可能有一个解决方法可以阅读有关实现某些three js在它的上面 这可能是 2018 年更清洁的方式 我将 Aframe 相机的变焦限制
  • Laravel - 在标头中发送 api_token

    我正在为 Laravel 构建一个 API 我想在标头中发送 api token 而不是表单帖子 这是已经内置的东西还是我必须弄清楚如何创建自己的身份验证驱动程序 经过我自己的努力 我终于成功了 您需要首先遵循这个小教程 了解如何在 Lar
  • 从 Swift 访问 Azure 表存储

    我想从 Swift 访问 azure 表存储 制作标题的指令是here但是 我尝试构建请求但无法使其工作 let urlString https
  • 使用 PyGame 显示 PyMunk - Python

    我正在尝试学习 PyMunk 我使用了网站上的基本示例 import pymunk space pymunk Space space gravity 0 1000 body pymunk Body 1 1666 body position
  • 如何为包装 TableRow 的类指定/定义编码器

    我定义了一个类来包装com google api services bigquery model TableRow类将其定义为内部成员 public class TableRowWrapper implements Serializable
  • 结构填充

    我试图将文件中的数据块直接读取到结构中 但填充导致读取太多数据并且数据未对齐 我是否必须手动将每个部分读入结构中 或者是否有更简单的方法来执行此操作 My code 结构体 typedef unsigned char byte struct
  • 如何在backbone.js中通过全局变量创建集合?

    我在 stackoverflow 上得到了很多顾问的帮助 我的部分问题得到了解决 但还有一些问题仍然存在 我查阅了答案 并尝试解决问题 因为我理解了 javascript 命名空间模式 避免污染全局命名空间的命名空间模式 有关此命名空间模式
  • 闪亮的允许用户选择要显示的列

    我正在涉足闪亮的数据表功能 我有兴趣创建一个井面板或侧面板 列出数据表的所有列 并允许用户选择他们想要在数据表上看到的列 现在下面的代码显示玩具数据集的所有列mtcars library shiny runApp list ui basic
  • Sklearn MLP 特征选择

    带交叉验证的递归特征消除 RFEVC 不适用于多层感知器估计器 以及其他几个分类器 我希望在许多分类器中使用特征选择 执行交叉验证来验证其特征选择 有什么建议么 对于结构化数据 有一个独立于模型选择的特征选择 称为排列重要性 解释得很好he
  • 在 V8 中执行函数的具体执行次数是多少之后变得很热?

    我正在学习 V8 的内部工作原理 发现有 JIT 编译器 它可以通过内联缓存技术动态优化热函数 我只有两个问题 第一 函数只要连续执行几次就算热函数吗 其次 V8 中函数在重复执行多少次之后就会变热 V8 开发者在这里 函数的 热度 不仅仅
  • 静态方法内存消耗

    我有以下具有以下方法的类 public class Foo public string A get set public static Foo New string a Foo newFoo new Foo newFoo A a retur
  • TShellTreeView 在哪里?

    我正在尝试在 Delphi 10 Seattle 中编译一个旧项目并收到以下错误消息 类 TShellTreeView 未找到单击取消忽略 TShellTreeView是一个设计时组件 是ShellCtrls软件包 始终随 Delphi 一
  • Delphi 和 PHP 中的安全密钥对加密解决方案?

    我的应用程序通过互联网发送加密文件 我需要能够执行以下操作 客户端 Delphi 2010 使用加密文件公钥随我的应用程序一起提供并上传到服务器 服务器端 PHP 使用我的解密上传的文件私钥存储在服务器上 处理上传的文件 听起来很简单 但我
  • MATCH 或 VLOOKUP 从范围末尾开始

    我有一张看起来像这样的桌子 A B ID1 data 123 ID2 data 234 ID1 data 456 ID2 data 567 我正在尝试找到最好的检索方法data 567对于 ID2 在 ID2 上使用 MATCH 使用选项
  • 如何显示尽可能多的项目适合一行,如果全部不适合显示剩余项目的数量

    我刚刚开始学习Svelte 我想在一行中显示尽可能多的电子邮件 并使用如下数字显示剩余的电子邮件 https i stack imgur com 9k7np jpg 我想在不修改父组件中的代码的情况下实现这一点 我只是想改变DisplayE
  • Java 获取屏幕上的像素颜色?

    您好 我正在尝试获取 JFrame 上特定像素的颜色 这是我的代码 我的镜框是红色的 我遇到的问题是 当我单击框架时 它应该返回红色的 RGB 颜色 即 255 0 0 但是当我单击不同的点时 有时会得到白色的 RGB 颜色 255 255