getComponentAt() liefert immer das Panel

Status
Nicht offen für weitere Antworten.

boskop

Aktives Mitglied
Hallo,

ich habe ein Problem mit meinem JPanel. Und zwar habe ich als "hintergrundbild" im Panel ein Schaltschema, darauf habe ich ein paar JComponents Positioniert (Lämpchen). Nun soll, wenn man auf ein solches Lämpchen klickt, ein Kontextmenü dazu geöffnet werden.

Ich habe im Panel einen Mouselistener, der auch reagiert, aber die Methode getComponentAt(), liefert mir nicht das Lämpchen, worauf ich geklickt habe, sondern immer nur das JPanel darunter.

Woran könnte das liegen?

Danke,


Boskop


PS: ich treff das Lämpchen mit der Maus! ;-)
 
Du hast doch verschachtelte Components.
Die getComponentAt()-Methode des JPanel, welches alles andere anzeigt, liefert nur die nächste Component, also nicht, was eventuell in dieser noch drin liegt. Wenn du Zugriff auf das JLabel bekommen willst, musst du auch das zurückgegebene JPanel befragen.
 
Vielen Dank für die Antwort.

Ich hab das Problem gefunden, es ging nicht, weil die getWidth/Heigth() Methoden meiner Komponenten 0 zurück gaben. Weiss zwar nicht warum, aber ich muss die in der paint() methode der Komponenten explizit setzen, nun geht's.

Danke

Boskop
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben