2011-11-23 18 views
6

Sekmeli bölmeli ve içinde farklı bileşenler bulunan bir uygulamam var. Bir Hızlandırıcı ile Eylem olarak bir Menuıtem belirledik:Varsayılan hızlandırıcı olarak F6'ya sahip bir Salıncak elemanı var mı?

private final Action focusDefaultCommandsAction = new AbstractAction() 
{ 
    { 
     putValue(NAME, "Fokusiere Kommandoliste"); 
     putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0)); 
    } 

    @Override 
    public void actionPerformed(final ActionEvent e) 
    { 
     invokeShowCommandsList(); 
    } 
}; 

Ben Accelearator F6 tuşuna çalışmıyor için bir sekme olduğunu biliyoruz. F7 tuşu çalışır.

Hızlandırıcıma göre önceliği olan Swing Element üzerinde varsayılan hızlandırıcı var mı?

cevap

9

Bunu BasicLookAndFeel.java'da (veya kullandığınız L & F'ye bağlı olarak benzer bir sınıfta) görebilirsiniz, F6'da arama yapabilirsiniz.

JSplitPane tarafından içerik ve ayırıcılar arasındaki odağı değiştirmek için F6'nın kullanıldığı anlaşılıyor. gibi bir şey kullanabilirsiniz kaldırmak için (test edilmedi, ben bir ebeveyn girdi haritası olabilir çünkü gerçek eylem çıkarmadan zor olduğunu düşünüyorum):

splitPane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) 
    .put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "none"); 
+1

Mucize: o :) çok teşekkür ederim çalışır. – Neifen

+0

Herhangi biri Swing bileşenleri tarafından kullanılan tüm hızlandırıcıları bulabilecek bir yer biliyor mu? Kullanışlı olabilir –

+0

JSplitPane ayrıca F8 hızlandırıcısı kullandığınızı unutmayın. –

İlgili konular