Java MouseListener und Graphics

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Hallo, ich bin aktuell ein bisschen mit dem Java MouseListener und Java Graphics am rumspielen.
    Dabei sind sind nun einige Fragen aufgetreten, wozu ich im Internet keine vernünftige Lösung gefunden habe:


    1. Ich habe eine GUI, die als Attribut das Panel a hat. Im Panel ist ein MouseListener implementiert und in der GUI der Befehl addMouseListener(a);. Das MousePressed-Event soll jetzt aber nur ausgelöst werden, wenn die Maus auch im Bereich des Panels a ist. Gibt es dafür irgendwie eine Methode oder so etwas oder muss ich dann immer abfragen, ob die Maus sich aktuell im Bereich des Panels aufhält? Wenn ja, kann ich im Panel erfahren, an welcher Stelle ich mich aktuell befinde? (oberer linker Punkt würde mir da schon reichen)


    2. Auf das Panel zeichne ich mehrere Kreise. Kann ich irgendwie abfragen, ob ich mich mit der Maus aktuell im Bereich eines Kreises aufhalte? Auf das Panel zeichne ich Kreise mit der Standardanweisung fillOval(x1,x2,width,height).


    Danke schonmal im Vorraus


    e://thx, alles jetzt gelöst :)

  • 1. Genau das habe ich gemacht, und ich habe auch irgendwie das Gefühl, dass es zwischenzeitlich auch mal nur so war, dass es nur beim Panel auslöste, aber jetzt irgendwie nicht mehr... Ich habe auch die GUI mal durchsucht, der MouseListener wird nur auf das Panel gesetzt.


    2. Wie speicher ich mir denn alle Koordinaten des Kreises?! Ich will ja nicht das x1,y1 des drawOval(x1,y1,width,height)-methodenaufrufes, sondern jeden möglichen punkt, der innerhalb des kreises liegt

  • hm, finde ich jetzt nicht so die tolle lösung, weil ich dann ja mir jedes mal alle punkt des kreises ausrechnen müsste...
    ich habe mir jetzt überlegt, dass ich ja mit mouseEntered und mouseExited herausfinden kann, ob die maus sich aktuell auf einem bestimmten objekt befindet. jetzt hatte ich mir gedacht, dass ich für jeden gezeichneten kreis ein extra grafikobjekt mache, was dann auf das panel gezeichnet wird. kann ich dann irgendwie aus dem panel heraus abfragen, ob die maus auf einem kreis ist oder muss ich das in jedem kreis-grafikobjekt nochmal selbst machen, also jedem kreis-grafikobjekt ebenfalls einen mouselistener verpassen? gibt es runde grafikobjekte?^^