Pixelfarbe abgleichen funktioniert nicht

Diskutiere Pixelfarbe abgleichen funktioniert nicht im AWT, Swing, JavaFX & SWT Bereich.
N

needhelp___

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();
}
}
}
 
J

JustNobody

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.
 
N

needhelp___

okay, und wie würdest dumir dann empfehlen new coulor zu umschreiben? Und schonmal danke dir:)
 
J

JustNobody

Das ist alles ok, der Vergleich muss mit equals gemacht werden:
if(!farbe.equals(FArb)) {
 
krgewb

krgewb

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();
        }
    }
}
 
Thema: 

Pixelfarbe abgleichen funktioniert nicht

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben