変数 C に設定した色は、coal1 の変数と同じですが、if ステートメントを実行すると、それらが等しくないことが返されます。印刷行でデバッグしましたが、結果は奇妙です。どんな助けでも大歓迎です!
コード
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();
}
}
}
私がそれを実行すると、私は得る
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