Guten Tach,
ich probiere gerade ein wenig mit dem Zeichen in [JAPI]javax.swing[/JAPI] auf einem JPanel rum. Bekomme es mittlerweile auch hin eine Linie zu zeichnen, die sich mit der Tastatur steuern lässt. Allerdings würde mich interessieren, wie ich sicherstellen kann, dass die Linie nur dann gezeichnet wird, wenn der Untergrund z.B. schwarz ist --> also noch nicht vorher "bezeichnet" wurde.
Ich habe mir erst überlegt, alle Positionen der Linie in einer Liste zu speichern - hab diese Idee aber schnell wieder verworfen, da ich glaube, dass wenn man länger zeichnet die Liste viel zu lang wird und das Programm dann unnötig ausgebremst wird.
Die 2. Möglichkeit, die ich mir überlegte war mit der Klasse Robot ([JAPI]java.awt.Robot[/JAPI]) zu arbeiten. Allerdings hab ich keine Ahnung, wie ich sie benutzen soll. Ich hab bereits etwas rumprobiert und jeweils Positionen abgefragt, allerdings bekomme ich immer merkwürdige Farben, die überhaupt nicht auf meinem JFrame ([JAPI]javax.swing.JFrame[/JAPI]) sind, denn der Hintergrund ist schwarz und die Linie Rot...
Dieses
bzw.
am Ende der Zeilen gibt den wirklichen x bzw y Wert des JFrames auf dem Bildschirm zurück.
Hoffe Ihr könnt mir helfen
ich probiere gerade ein wenig mit dem Zeichen in [JAPI]javax.swing[/JAPI] auf einem JPanel rum. Bekomme es mittlerweile auch hin eine Linie zu zeichnen, die sich mit der Tastatur steuern lässt. Allerdings würde mich interessieren, wie ich sicherstellen kann, dass die Linie nur dann gezeichnet wird, wenn der Untergrund z.B. schwarz ist --> also noch nicht vorher "bezeichnet" wurde.
Ich habe mir erst überlegt, alle Positionen der Linie in einer Liste zu speichern - hab diese Idee aber schnell wieder verworfen, da ich glaube, dass wenn man länger zeichnet die Liste viel zu lang wird und das Programm dann unnötig ausgebremst wird.
Die 2. Möglichkeit, die ich mir überlegte war mit der Klasse Robot ([JAPI]java.awt.Robot[/JAPI]) zu arbeiten. Allerdings hab ich keine Ahnung, wie ich sie benutzen soll. Ich hab bereits etwas rumprobiert und jeweils Positionen abgefragt, allerdings bekomme ich immer merkwürdige Farben, die überhaupt nicht auf meinem JFrame ([JAPI]javax.swing.JFrame[/JAPI]) sind, denn der Hintergrund ist schwarz und die Linie Rot...
Java:
colorXLeft = (int) (line.getXPos() + (line.width / 2) + (line.width / 2) * line.sin(angle)) + p.x;
colorYLeft = (int) (line.getYPos() + (line.height / 2) - (line.height / 2) * line.cos(angle)) + p.y;
colorXFront = (int) (line.getXPos() + (line.width / 2) + (line.width / 2) * line.cos(angle)) + p.x;
colorYFront = (int) (line.getYPos() + (line.height / 2) + (line.height / 2) * line.sin(angle)) + p.y;
colorXRight = (int) (line.getXPos() + (line.width / 2) - (line.width / 2) * line.sin(angle)) + p.x;
colorXLeft = (int) (line.getYPos() + (line.height / 2) + (line.height / 2) * line.cos(angle)) + p.y;
cBackLeft = robot.getPixelColor(colorXLeft, colorYLeft);
cBackRight = robot.getPixelColor(colorXRight, colorYRight);
cBackFront = robot.getPixelColor(colorXFront, colorYFront);
System.out.println("CBackLeft: " + cBackLeft.equals(cCompare) + ", denn Farbe: " + robot.getPixelColor(colorXLeft, colorYLeft));
System.out.println("Position-Robot: " + colorXLeft + ", " + colorYLeft);
System.out.println("CBackFront: " + cBackFront.equals(cCompare) + ", denn Farbe: " + robot.getPixelColor(colorXFront, colorYFront));
System.out.println("Position-Robot: " + colorXFront + ", " + colorYFront);
System.out.println("CBackRight: " + cBackRight.equals(cCompare) + ", denn Farbe: " + robot.getPixelColor(colorXRight, colorYRight));
System.out.println("Position-Robot: " + colorXRight + ", " + colorYRight);
if( !cBackLeft.equals(cCompare) || !cBackFront.equals(cCompare) || !cBackRight.equals(cCompare)){
System.out.println("Vllt beim nächsten Mal ;-)");
}
Dieses
Code:
p.x
Code:
p.y
Hoffe Ihr könnt mir helfen
Zuletzt bearbeitet: