[Java] JPopupMenu verdwijnt niet

Pagina: 1
Acties:

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
beste java specialisten

ik zit met een klein probleempje.
wanneer de show() methode uit jpopupmenu wordt aangeroepen, en je klikt daarna weer op je frame,
dan verdwijnt de popup weer.

echter wanneer ik nu geen show() gebruik, maar maar setLocation() in combinatie met setVisible() en ik klik weer op het frame, dan verdwijnt de popup niet.

weet iemand hoe dit komt en hoe ik er om heen kan werken?

ik heb al geprobeerd gebruik te maken van een focus listener, maar de popup krijgt nooit de focus, ook niet wanneer ik daar expliciet om vraag ( met grabFocus() )

ook geprobeerd gebruik te maken van de z-order, maar deze retourneerd alleen maar -1, omdat de popup niet op een container zit

iemand een idee?

[ Voor 10% gewijzigd door martennis op 23-07-2006 13:31 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Waarom zou je setLocation en setVisible willen gebruiken ipv. show? Daarmee kun je namelijk ook de coordinaten instellen.

Probeer anders eens je frame als invoker in te stellen met setInvoker. Misschien dat het dan wel goed gaat.

[ Voor 32% gewijzigd door Michali op 23-07-2006 13:46 ]

Noushka's Magnificent Dream | Unity


  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
ik ben aan het proberen een popupmenu precies onder een button te plaatsen wanneer op deze button geklikt wordt. daarnaast wil ik dat deze weer verdwijnt als ik voor een 2e keer op de button klik. als ik dit met show doe, dan verdwijnt het menu eerst (omdat ik buiten het menu klik op mijn frame) en daarna komt de mouse event van de button pas. ik krijg dus dat het menu dan niet dicht gaat wanneer ik voor een 2e keer op de knop druk.

ik zal eens proberen of ik het frame als invoker in kan stellen

edit: met frame als invoker werkt ook niet

[ Voor 5% gewijzigd door martennis op 23-07-2006 13:59 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:03

momania

iPhone 30! Bam!

martennis schreef op zondag 23 juli 2006 @ 13:51:
ik ben aan het proberen een popupmenu precies onder een button te plaatsen wanneer op deze button geklikt wordt.
Maar doe dat dan, zoals Michali zegt, via de show method waar je ook coordinaten mee kan geven.

show(Component invoker, int x, int y)

[ Voor 6% gewijzigd door momania op 23-07-2006 14:30 ]

Neem je whisky mee, is het te weinig... *zucht*


  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
momania schreef op zondag 23 juli 2006 @ 14:29:
[...]


Maar doe dat dan, zoals Michali zegt, via de show method waar je ook coordinaten mee kan geven.

show(Component invoker, int x, int y)
daarnaast wil ik dat deze weer verdwijnt als ik voor een 2e keer op de button klik. als ik dit met show doe, dan verdwijnt het menu eerst (omdat ik buiten het menu klik op mijn frame) en daarna komt de mouse event van de button pas. ik krijg dus dat het menu dan niet dicht gaat wanneer ik voor een 2e keer op de knop druk.
daarom wil het niet met de show functie

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 12-02 12:22
http://www.javalobby.org/java/forums/t61165.html

Je wil wel wel die show functie, maar wel met een focuslistener en een invokeLater vanwege event afhandeling.

(Overigens niet struikelen over het feit dat er in dat linkje ook wat met components gedaan wordt in een popup.)

[ Voor 27% gewijzigd door The - DDD op 23-07-2006 16:36 ]


  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
The - DDD schreef op zondag 23 juli 2006 @ 16:33:
http://www.javalobby.org/java/forums/t61165.html

Je wil wel wel die show functie, maar wel met een focuslistener en een invokeLater vanwege event afhandeling.

(Overigens niet struikelen over het feit dat er in dat linkje ook wat met components gedaan wordt in een popup.)
dat is het inderdaad bijna...
ik probeerde het net met de jpopupmenu en een focuslistener, maar daar gaat hij niet weer weg (wat niet klopt eigenlijk, want het enige wat anders is, is het feit dat het een j...menu is en geen jframe en een focuslistener ipv een windowsfocuslistener)

ik zal er nog even naar kijken, en anders probeer ik het met een jframe...
thnx!

[ Voor 5% gewijzigd door martennis op 23-07-2006 19:24 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20:53

Robtimus

me Robtimus no like you

Dat "enige dat anders is" is echter een groot verschil. JFrame en JDialog zijn subclasses van Window, terwijl JPopupMenu een "gewone' (J)Component is.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
IceManX schreef op zondag 23 juli 2006 @ 19:50:
Dat "enige dat anders is" is echter een groot verschil. JFrame en JDialog zijn subclasses van Window, terwijl JPopupMenu een "gewone' (J)Component is.
dat snap ik, maar een JPopupMenu heeft ook gewoon een focus, maar deze kan blijkmaar niet gewijzigd worden, aangezien deze niet veranderd als ik een ander frame selecteer

ik heb het nu zoals in die tutorial stond, en dat werkt wel (beetje jammer van het 'taakbalkje' dat er nu bij komt onder (bij 'start').. maar het is even niet anders. Tenzij iemand anders nog ideeen heeft?

edit:
het is me na enkele uren ergeren gelukt!

wat ik heb gedaan? een boolean waarde die bijhoudt of het menu open of gesloten moet worden
het is me tevens gelukt de focuslistener aan de praat te krijgen. dit had te maken met het feit dat er geen invoker opgegeven was. dont ask me why.. want het lijkt me niet minder dat een popup altijd de focus heeft, of anders onzichtbaar is, maar goed

die tutorial heeft me wel een goed eind in de weg geholpen! nogmaals bedankt!

[ Voor 30% gewijzigd door martennis op 24-07-2006 22:59 ]

Pagina: 1