Color is equal to another color, Java [closed]

你离开我真会死。 提交于 2019-12-13 23:51:10

问题


Okay the color I have set in the variable C is equal to the variable in coal1, but when put through an if statement it comes back that they are not equal. I've debugged it with print lines and the result is weird to me. Any help would be greatly appreciated!

Code

class MyTask extends TimerTask {

    static Color coal1 = new Color(255, 255, 255);
    Robot robot;
    int xRock, yRock;

    MyTask(Robot r, int x, int y) {
        this.robot = r;
        this.xRock = x;
        this.yRock = y;
    }

    public void run() {
        java.awt.Color c = this.robot.getPixelColor(this.xRock, this.yRock);
        System.out.println("c before the if: "+c);
        System.out.println("coal 1 before the if: "+coal1);

        if (c.equals(coal1)) {  //I can not get the c from the other class to compair with coal1
            System.out.println("color is the same");
        } 
        else {
            System.out.println("c after the if: "+ c);
            System.out.println("coal1 after the if: "+coal1);
            System.out.println("color changed");

            //Stop Timer.
            this.cancel();
        }
    }
}

When I run it i get

c before the if: java.awt.Color[r=225,g=225,b=225]
coal 1 before the if: java.awt.Color[r=255,g=255,b=255]
c after the if: java.awt.Color[r=225,g=225,b=225]
coal1 after the if: java.awt.Color[r=255,g=255,b=255]
color changed

回答1:


According to your output, they are not the same. c's red, green, and blue components are 225, while coal1's components are 255.

Color.equals(Color o) compares the RGB values which in your case are not the same




回答2:


Here's the solution I've come up with:

int R = 255; 
int G = 255; 
int B = 255;
if ((c.getRed() == R) && (c.getGreen() == G) && (c.getBlue() == B)) { 
    System.out.println("Found color"); 
} else { 
    System.out.println("Couldnt find color"); 
} 



回答3:


Try using the instanceof operator.



来源:https://stackoverflow.com/questions/16741098/color-is-equal-to-another-color-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!