【问题标题】:How to check the color of a pixel in JPanel in Java?如何在 Java 中检查 JPanel 中像素的颜色?
【发布时间】:2020-08-15 07:04:28
【问题描述】:

我正在尝试用 Java 编写一个代码,该代码根据单击的位置更改圆的颜色,以及一些 if/else 语句来更改圆的颜色,以及查看是否有任何屏幕顶部的圆圈以不同于白色的颜色着色。我有识别要检查的像素的语句,以及改变像素所指的圆圈的颜色,我只需要一些代码来检查像素是什么颜色。我使用 JPanel 作为创建 GUI 的基础,但我不知道如何检查像素的颜色。

我认为代码会是什么样子:

X=e.getX();
Y=e.getY();
if((X,Y)!=(Color.White)){
     Y=Y+100;
     }
else{
     g2.fillOval(X,Y,30,30);
}

我写的代码已经确定了填充像素所指的圆圈的颜色

【问题讨论】:

    标签: java swing colors jpanel pixel


    【解决方案1】:

    您需要为您的 JPanel 添加一个 MouseListener 以获取 X 和 Y 鼠标指针位置,然后使用机器人类您可以获得该特定位置的像素颜色,例如:

    jPanel1.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent evt) {
            int x = evt.getX()
            int y = evt.getY();
            try {
                // The the pixel color at location x, y
                Color color = new Robot().getPixelColor(x, y);
    
                // Display the RGB information of the pixel color in Console Window
                System.out.println("Red   = " + color.getRed());
                System.out.println("Green = " + color.getGreen());
                System.out.println("Blue  = " + color.getBlue());
            }
            catch (AWTException e) {
                e.printStackTrace();
            }
        }
    });
    

    还有其他方法可以做到这一点,但这是最简单的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多