Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hey Leute,

ich möchte den Mausklick auf einem JLABEL/JPANEL registrieren. Kann das mit dem Mauslistener/MouseMotionListener, aber geht es auch sauber? Also direkt in einer Verbindung zur Komponente?

Sauber? Einmal mit dem Lappen über den Monitor, dann ist es sauber. :)

Was meinst Du damit? Was hast Du und was möchtest Du? Wo ist auf diesem Weg Dein Problem?

Schöne Grüße,

Peter

Naja die Sache ist, es ist eine bestehende Oberfläche, auf der manche Labels sich auch überlappen....

Sprich wenn ich das nun mit einen eigenen Alghorythmus mache stell ich mir das nicht so einfach vor

Damit man sich das mal vorstellen kann wie es aussehen kann:

___________

|....................|________

|....................|................|

|__________|................|

................|___________|

Sprich wenn ich das nun mit einen eigenen Alghorythmus mache stell ich mir das nicht so einfach vor

Versuch mal, Dir vorzustellen, Du liest Deine zwei Beiträge hier und weißt von Deinem Problem *nichts*. Würdest Du verstehen, was gemeint ist?

Ich nicht.

Also: wenn Du *was* mit einem eigenen Algorithmus machst, was stellst Du Dir dann nicht so einfach vor?

Bis jetzt weiß ich nur, dass Du Panels und / oder Labels hast, und auf denen wird mit der Maus geklickt. Den Rest musst Du noch liefern.

Peter

Könnte es evtl. sein, dass du ein Panel machen möchtest und da einfach mal so "wild durcheinander" Labels drauf setzen möchtest, die sich im schlimmsten fall auch überlappen? Könnte es weiter sein, dass du einen MausListener an dem Panel registrieren möchtest, der alle klicks auf dem Panel und damit auch auf den Labels und Buttons und was auch immer, auffängt. Wenn dem so ist wie ich mir das gerade vorstelle, nehme ich auch mal an, dass du in der onClick Methode z.B. über die Pixel-Koordinate prüfen möchtest auf was du da gerade geklickt hast und dann die entsprechende Aktion ausführen möchtest?! ;)

Wenn es so ist, wie Schmitze meint, dann kannst Du ja einfach aus dem Event die source ermitteln und hast das Objekt, auf das geklickt wurde.

Aber vielleicht liest der OP gerade noch seinen Eingangspost und versucht, nachzuvollziehen, was er gemeint hat. :)

Peter

Wenn du dir bei der von mir beschriebenen Konstellation einfach die Quelle des Event geben lässt, könnte es sein, dass du immer nur das Panel zurück bekommt, das der Listener ja an diesem dran hängt und nicht an den Labeln. Musst du halt einfach ausprobieren.

Schlimmstenfalls müsstest du hier wirklich mit der Pixelkoordinate arbeite. Aber auch hier gibt es Methoden, die einem die Komponente zurück geben, die als oberstes an diesem Pixel liegt ;)

Oder man hängt an jede Komponente (Component) einen eigenen MouseListener/MouseAdapter (oder den gleichen, da wiederum Abfrage von welcher Komponente das Event kommt)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.