2012-11-02 25 views
5

'a tepki göstermiyor Basılıyken çıkış anahtarına tepki vermek için bir JPanel gerektiren bir uygulama üzerinde çalışıyorum. Keybindings'i bir bileşene kaydetmek için doğru yöntemi kullandığımdan eminim ama hala yanlış bir şey yapıyorum. Diğer tüm bileşenler başlatılır sonra bu yöntem, benim Jpanel yapıcı olarak adlandırılırJPanel, KeyBindings

private void initializeKeyBindings() { 
    Action a = new AbstractAction() { 
     private static final long serialVersionUID = 1L; 
     @Override public void actionPerformed(ActionEvent e) { 
      menu.setVisible(true); 
      System.out.println("Herp"); 
     } 
    }; 
    this.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE"); 
    this.getActionMap().put("ESCAPE", a); 
} 

: Bu bahsedilen keybinding tepki bitiminin kaydedilmesi sorumlu kodudur. Hata ayıklamayı denedim ve işlemin kendisinin JPanel'de kayıtlı olduğunu ancak actionPerformed() yöntemindeki kodun hiçbir zaman ulaşılmadığını buldum. Üzerinde JFrame'de bir CardLayout kullandığım için bu JPanel'in odaklanmamasından dolayı bir sorun olabileceğinden şüpheleniyorum. İçtenlikle herkesin bana bu konuda yardımcı olabileceğini umuyorum ki ilerlememi çok kötü tutuyor.

cevap