ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
487
487
EMPFEHLEN
-
Hallo Gemeinde
,
habe folgende Situation:
Ich habe ein JPanel, auf dem ich weitere Komponenten platziert habe, z.B. 4 JButtons. Nun will ich, dass sich auf jeder Beliebigen Position des JPanels mit Hilfe der rechten Maustaste ein PopUpMenu öffnen lässt.
Dazu habe ich an das JPanel einen Mouselistener gehängt, welche das Menü öffnet. Das Ganze funktioniert, aber an den Positionen der JButtons reagiert der Listener nicht. Irgendwie auch logisch, die Buttons überdecken ja das JPanel an diesen Stellen.
Aber muss ich jetzt wirklich für jedes Element auf den JPanel einen extra Mouslistener hinzufügen, nur um auch da mein Menü öffnen zu können?
Oder gibt es eine Art allgemeinen Mouselistener, der immer reagiert, egal wo ich ihn auslöse?
Danke!
-
27.04.11 11:17 #2
Moin,
nein, das ist ja auch klar ... ein Listener gilt immer ausschließlich für das Objekt, an den er gebunden wird (hier also Panel und NICHT Button). Es macht vermutlich ja auch nicht viel Sinn, die gleichen Aktionen beim Buttonklick wie beim Klick aufs Panel ablaufen zu lassen.
Aber Du kannst natürlichen EINEN Listener schreiben und diesen jeweils an alle vier Button hängen (falls dies denn Sinn macht und gewollt ist) !
Sollen denn bei allen vier Button wirklich die gleichen Aktionen ausgeführt werden
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Man kann auch einen Listener schreiben und dadrin dann ueberpruefen welcher gedrueckt wurde und dann die jeweilige Aktion ausfuehren
Waere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
28.04.11 08:45 #4
Moin,
Schon klar, aber das macht den Code - je nachdem, was an Aktionen folgt - ggf. recht unübersichtlich!
Zudem hatte ich auch eher das Gefühl, dass hier ein pauschaler Listener (also ohne weitere Differenzierung) verwendet wird ... ok, da hätte ich mich sicher klarer ausdrücken können ... aber so ist das halt zwei Tage vor dem Urlaub
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
28.04.11 19:24 #5SE Tutorials.de Gastzugang
Also soweit ich das weis kann man in einem MouseListener überprüfen welche Maustaste gedrückt wurde. Denn sonst würde der normale MouseListener den Buttons automatisch bekommen auch bei einem rechtsklick reagieren was ja nicht der Fall ist.
Was du jetzt allerdings machen könntest wäre ein JLayeredPane zu verwenden.
Dafür musst du aber deine GUI ggf umschreiben weil du deine gesamte GUI auf ein JPanel bekommen musst und dieses dann dem JLayeredPane hinzufügen musst *am besten als UNTERSTES*. Dann erzeugst du ein zweites JPanel , hängst diesem dein MouseListener an in dem dann explizit auf Rechtsklick geprüft werden muss ... setzt dieses mit setOpaque(true) durchsichtig und fügst es als höheres Panel dem JLayeredPane zu. Dadurch wird dein Rechtsklick überall abgefangen ... und der normale Linksklick wird auf die JButtons weitergereicht *wenn meine Theorie stimmt*. Ob das wirklich so funktioniert weis ich jetzt nicht sicher, aber wenn das obere JPanel keine MouseListener hat werden die Klicks definitiv das erste darunter liegende Component weitergereicht die dann einen Listener für die entsprechenden Bounds hat.
Ähnliche Themen
-
Sichtbares PopupMenu
Von SeppT im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 16.02.09, 15:17 -
SWT PopUpMenu Problem
Von Woggly im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 07.08.08, 16:30 -
transparentes PopupMenu?
Von yuccapalme im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 18.06.08, 11:06 -
PopUpMenu in awt
Von illaX im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 06.04.05, 08:44 -
Überdeckte Swing Objekte scheinen durch!
Von ViSPer im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 21.05.04, 16:09





Zitieren

Login





