Ich möchte gerne ein Rechteck zeichnen welches wieder unterteilt ist in n kleinere Rechtecke. Es soll dann möglich sein, dass wenn man die Maus über eines dieser Felder bewegt und dieses dann in einer anderen Farbe angezeigt wird. Wenn man dann mit der Maus auf dieses Feld klickt soll sich ein Dialogfenster öffnen. Bitte um eure Hilfe
Ich finde das mit den Rechtecken klingt ein wenig umständlich, muss das so sein? Wenn nicht würde ich eher zu JButtons/JLabels oder ähnlichem raten...
Ansonsten gibt es 2 Listener, die dir helfen müssten. Diese sind:
MouseListener - für den Klick
und
MouseMotionListener - für die Mausbewegung
Soweit ich weiß kann man auch statt den 2 Listenern den MouseInputListener verwenden.
Nachteil: Ein MouseMotionListener ist nicht immer umbedingt empfehlenswert, da das Event für die Mausbewegung sehr oft ausgelöst wird. Und die Auswertung, welches der Rechtecke betroffen ist, hat vermutlich einen recht großen Umfang.
Hier ein Vorschlag für die Vorgehensweise mit Labels:
1. du fügst jedem deiner Labels nur den MouseListener hinzu
2. du überschreibst die Methoden mouseEntered, mouseExited und mousePressed/mouseClicked/mouseReleased
3. du wertest die Quelle aus, von dem das Event ausgelöst wurde (getSource)...
4. ...und änderst dementsprechend die Farbe vom "aktiven" Label bzw. öffnest den Dialog
Vorteil: Auswertung ist recht kurz und simple