Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not)

JavaGamer

Bekanntes Mitglied
Hallo,

mal wieder habe ich ein Problem...
Da ich habe mir jetzt einen eigenen Button programmiert, komme nun aber nicht weiter:

Unbenannt.png

Also, das Rechteck (im Programm selbst mit fillRect verwirklicht) soll den Button darstellen. Das schwarze Rechteck soll das Fenster vom Programm selbst darstellen und der rote Punkt soll der Cursor sein. Nun möchte ich ermitteln, ob sich der Cursor in dem orangen Rechteck befindet oder nicht, um dementsprechend ein Ereigniss auszuführen. Dazu habe ich schon den MouseAdapter eingefügt (die Methoden mousePressed und mouseReleased um genauer zu sein).

Jedoch finde ich momentan keinen Weg, wie ich herausfinden kann ob der, im Bild roter Punkt, in orangem Rechteck ist oder nicht. Da irgendwie schaffe ich es nicht alle Parameter miteinander zu verknüpfen in einem for-loop oder einer if-Abfrage.

Ich hoffe hier kann mir jemand weiterhelfen.
JavaGamer
 
Guck dir mal den MouseListener oder den MouseMotionListener an. In einer der Methoden kannst du dir dann immer wieder den x- und y-Wert der Maus zurückgeben lassen. Und mit diesem Werten kannst du dann immer wieder überprüfen, ob die Maus in einem Rechteck ist, da du die x, y und Größenwerte des Rechteckes hast. Wenn der x-Wert der Maus größer oder kleiner ist als der x-Wert soll etwas passiert und das selbe musst du mit dem y-Wert machen.
 
Also das mit dem Button ist ja soweit fast fertig, also gerendert wird der schon richtig usw. Zudem bekomme ich auch schon die x und y Position der Maus, nur ich scheitere daran, die XY-Position der Maus, die XY-Position des Buttons und die Länge und Höhe des Buttons in eine funktionierende If-Bedingung reinzuschreiben, da alle meiner bisherigen Versuche sind darin geendet, das man überall hinklicken konnte, also das überall der Button war...

Zudem verwende ich auch keine exakten Zahlenwerte sondern Variablen, da man den Button so oft wie man will initialisieren kann und dann halt mehrere Buttons rendern lassen kann mit unterschiedlichen Funktionen.

Und dann hätte ich noch eine Frage, wie so eine IF-Bedingung bei anderen Button-Formen aussehen müsste, z.B. Oval,Kreis, Rechteck mit Viertelkreis an der einen Seite oder Rechteck mit zwei Halbkreisen (einer je Seite)...
 
Oder benutz folgende Methode, welche true zurückgibt, wenn die Maus in dem Rechteck ist:
Java:
public boolean moveIn(){
  if(xMaus > xRechteck && xMaus < xRechteck + widthRechteck){
    else if(yMaus > yRechteck && yMaus < yRechteck + heightRechteck){
      return true; 
    }
  }

  return false; 
}
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben