Pixelfarbe abgleichen funktioniert nicht

needhelp___

Mitglied
Ich versuche die Pixelfarbe zu überprüfen, ob es die selbe ist. Wenn es nicht die selbe ist soll es beide Ausgeben. Soweit so gut, aber wenn ich jetzt die selbe Farbe nehme dann sagt es trotzdem das es nicht die richtige Farbe ist, obwohl es genau die selbe ist. Nicht wundern das da Sachen importet sind die eigentlich dafür nicht von Nöten sind, aber ich hab es versucht noch nen bissel anders zu machen, was leider auch nichts gebracht hat.



import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.lang.reflect.Array;
import java.util.Scanner;
public class Faaarbe extends Autoklicker {
public static void main(String[] args) {
Robot v;

try {

v = new Robot();
v.delay(1000);
Color farbe = v.getPixelColor(740, 271);
Color FArb = new Color(255,255,255);
if(farbe !=FArb) {
System.out.println("Hey");
System.out.println(FArb);
System.out.println(farbe);

}


} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
 
Instanzen werden nicht mit == und != verglichen sondern immer mit equals!

Du erzeugst in dem Code zwei Instanzen mit new und mit == werden die Referenzen verglichen und die sind immer unterschiedlich, da jeweils mit new erzeugt.

Edit: Die eine Instanz kommt natürlich aus der aufgerufenen Methode ... aber new erzeugt eine neue Instanz die immer unterschiedlich der zurückgegebenen Instanz ist.
 
Das ist alles ok, der Vergleich muss mit equals gemacht werden:
if(!farbe.equals(FArb)) {
 
Bitte immer in Code-Tags posten.
Java:
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.lang.reflect.Array;
import java.util.Scanner;

public class Faaarbe extends Autoklicker {

    public static void main(String[] args) {

        Robot v;

        try {
            v = new Robot();
            v.delay(1000);
            Color farbe = v.getPixelColor(740, 271);
            Color FArb = new Color(255,255,255);

            if(farbe !=FArb) {
                System.out.println("Hey");
                System.out.println(FArb);
                System.out.println(farbe);
            }
        } catch (AWTException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
 

Zurück
Oben