# Draw Package - Listener Schnittstellen



## Sparkay (16. Jan 2015)

Moinsen,

ich bin neu hier und würde mich daher erstmals kurz Vorstellen und auch schonmal entschuldigen, falls ich den Thread in einem falschen Sub-Forum gepostet habe.

Ich bin Zeljko, 20 Jahre alt studiere Informatik und sitze grade am Rechner und übe etwas. Nur mir kommt da ein Problem unter. In der Uni haben wir ein sehr nettes Package bekommen. Das Draw Package. Der Vorteil davon ist gegenüber dem StdDraw, dass da Listener-Schnittstellen "verfügbar" sind und man recht einfach etwas schönes grafisches darstellen kann. Wir müssen nächstes Semester ein Programmier Praktikum machen, daher dachte ich mir, dass es ganz gut wäre, schon mal etwas dafür zu tun 

Kommen wir mal zu meinem Problem, nachdem ich um den heißen Brei geredet habe.
Ich habe hier vor ein kleines Spiel zu schreiben, wobei ich mir jetzt noch unschlüssig bin, was für eins es werden soll. Ich plane es von vorne nach hinten. Das heißt ich möchte zuerst eine Art Launcher erstellen, über den ich dann in das Spiel komme und dann das Spiel starte.

Hier das was ich habe:

```
public class launch implements DrawListener
{

	Draw a = new Draw();
	int whereAmI=0;		/*geplant ist um über diese Variable festzustellen wo man ist
						  bei 0 im Launcher bei 1 da bei 2 da bei 3 da usw.			 */
	public launch()
	{
		a.addListener(this);
		a.setCanvasSize(600,600); //größe des Fensters festlegen, random auf 600*600 Pixel gelegt
		a.clear(Draw.BLUE);		  //Hintergundfarbe
		a.setPenColor(Draw.BLACK);
		a.square(0.5,0.5,0.2);		//Zwei geometrische Figuren
		a.circle(0.5,0.5,0.001);
	}


	public void mousePressed (double x, double y) 
	{
		if(x>=0.005 || x<=0.55 && y>=0.45 || y<=0.95)	a.filledCircle(x, y, 0.02); 	//<--Problem
		else { }
	}

	public void mouseDragged (double x, double y) { }
	public void mouseReleased(double x, double y) { }
	public void keyTyped(char c){	}

	public static void main(String[] args) 
	{
	launch z=new launch();
	
	}
}
```

Nu zu meinem Problem, 
ich habe einen Kasten erstellt, innerhalb dieses Kasten soll über den mousePressed Listener, ein Punkt gemalt werden, wenn ich im Kasten bin, wenn ich außerhalb des Kastens mit der Maus bin, soll nichts passieren und das ist nicht der Fall.

Falls jemand es compilen möchte, hier sind Links zu dem Package.
Standard Libraries

Wie kann man mir da helfen?
Ich weiß schon mal, dass die X und Y Koordinaten (die double Werte) von 0 bis 1 gehen, daher Zahlen wie 0.2 oder 0.5 .

Danke nochmals und schönen Abend noch


----------



## Androbin (17. Jan 2015)

Benutze bitte 
	
	
	
	





```
-Tags, um deinen Code zu formatieren.

Verwende entweder die Methode "contains" der Klasse "Rectangle"
oder die Methoden "mouseEntered" und "mouseExited" des MouseListeners
und einen Flag, um zu prüfen, ob sich der Cursor innerhalb des "Kastens" befindet.
```


----------



## Sparkay (26. Jan 2015)

Hi sorry für meine Inaktivität, hatte viel um die Ohren.

Habe den Fehler gefunden, der liegt in der IF-Bedingung.
NICHT
if(x>=0.005 || x<=0.55 && y>=0.45 || y<=0.95)

SONDERN
if(x<0.75 && x>0.25 && y<0.75 && y>0.25)

totaler Noob-Fehler. ^^


----------

