2011-12-14 35 views
6

Deneyimli bir Java programcısıyım, ancak bir Swing newbie bu yüzden lütfen benimle birlikte ol.JPopupMenu'da odaklanma nasıl elde edilir

Klavye odağı olan bir JPopupWindow olmasını isterim. Ok tuşlarına cevap vermek istiyorum (menüyü kapatmak için) ve Enter (öğeyi çağırmak için). Bir KeyListener'ı menüye eklemeli ve tüm bunları kendim kodlamalı mıyım yoksa standart olması gerektiği gibi görünen bu davranışı etkinleştirmek için ayarlayabileceğim bir çeşit "mode" var mı?

JPopupMenus'un standart Swing öğretici bölümü yalnızca anımsatıcı ve hızlandırıcılardan bahseder. Özellikle bunları istemiyorum.

Bunun tamamen JPopupMenu tanesine karşı olduğuna inanmak zor.

Uygulanmak istediğim gibi bir şey elde etmenin en iyi yolu nedir?

cevap

6

jpopupMenu.show(Component invoker, int x, int y) yaptıktan sonra, klavyeye istediğiniz gibi yanıt verecektir. Bu daha sonra çalışmıyorsa diğer bazı bileşen menüsünden odak uzağa kapış olduğu, yani bazı başka sorunu düzeltmek gerekebilir zaman olması gerektiği değil vs.

+0

hmm. Show() yerine setVisible (true) kullanıyordum ama ben show() setVisible()/ –

+0

lehine reddedildiğini görüyorum. Kullandığım show (Component invoker, int x, int y) yönteminden bahsediyordum benim kodum Karışıklık için üzgünüm. –

+0

Cevap budur. Bir bileşene düzgün bir şekilde bağlı değildim. Çöp tütününün cevabı da bunu yapmak için gerekliydi. İkinize de teşekkürler. –

3

yerine KeyListener, senin JPopupMenu için Action örneklerini ekleyerek öneriyoruz. Pop-up'ınızı panelinize eklemek için setComponentPopupMenu() kullanın.

+1

teşekkürler, girişiniz, AKJ ile birlikte, bu işe koyuldu. –

+0

Mükemmel; referans için, yakın zamanda güncellenmiş bir örnek var [burada] (http://stackoverflow.com/a/5129757/230513). – trashgod

İlgili konular