2012-11-02 26 views
5

मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जिसके लिए एक जेपीनेल को दबाए जाने वाले भागने की कुंजी पर प्रतिक्रिया करने की आवश्यकता है। मुझे पूरा यकीन है कि मैंने एक घटक को कीबाइंडिंग पंजीकृत करने के लिए सही विधि का उपयोग किया है लेकिन स्पष्ट रूप से मैं अभी भी कुछ गलत कर रहा हूं।जेपीनेल कुंजीबंडिंग्स पर प्रतिक्रिया नहीं करता

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); 
} 

इस विधि मेरी JPanel के निर्माता में कहा जाता है के बाद अन्य सभी घटक प्रारंभ कर रहे हैं: यह कोड कहा की बाइंडिंग के लिए प्रतिक्रिया अंत पंजीकरण के लिए जिम्मेदार है। मैंने इसे डीबग करने का प्रयास किया है और मैंने पाया है कि एक्शन स्वयं जेपीनल में पंजीकृत है लेकिन कार्रवाई में कोड समर्थित() विधि कभी नहीं पहुंच पाई है। मुझे संदेह है कि इस जेपीनल के साथ कोई समस्या नहीं हो सकती है क्योंकि मैं ओवरराइड जेएफआरएएम में कार्डलाउट का उपयोग कर रहा हूं। मैं ईमानदारी से आशा करता हूं कि कोई भी मेरी मदद कर सकता है क्योंकि यह मेरी प्रगति को बहुत बुरी तरह पकड़ रहा है।

उत्तर