2009-08-05 13 views
8

मैं कैसे करूँ सेटअप आवेदन विस्तृत कुंजी श्रोताओं (कीबोर्ड शॉर्टकट), कि इतने जब एक कुंजी संयोजन (जैसे Ctrl + शिफ्ट + टी) दबाया जाता है, विशेष प्रकार की गतिविधि शुरू हो जाती है जावा एप्लिकेशन में।की स्थापना आवेदन विस्तृत कुंजी श्रोताओं

मुझे पता है कि कीबोर्ड शॉर्टकट JMenuBar मेनू आइटम सेट किए जा सकते हैं, लेकिन मेरे मामले में एप्लिकेशन में मेनू बार नहीं है।

उत्तर

17

जावा ट्यूटोरियल के How To Use Key Bindings अनुभाग देखें।

आप बना सकते हैं और रजिस्टर अपने घटक के ActionMap के साथ एक Action और अपने आवेदन की घटक के InputMap रों से एक में एक (KeyStroke, क्रिया का नाम) जोड़ी रजिस्टर करने के लिए की जरूरत है। यह देखते हुए कि आपके पास JMenuBar नहीं है, आप अपने आवेदन में शीर्ष-स्तर JPanel के साथ मुख्य बाइंडिंग को पंजीकृत कर सकते हैं।

उदाहरण के लिए:

Action action = new AbstractAction("Do It") { ... }; 

// This is the component we will register the keyboard shortcut with. 
JPanel pnl = new JPanel(); 

// Create KeyStroke that will be used to invoke the action. 
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); 

// Register Action in component's ActionMap. 
pnl.getActionMap().put("Do It", action); 

// Now register KeyStroke used to fire the action. I am registering this with the 
// InputMap used when the component's parent window has focus. 
pnl.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, "Do It"); 
+0

यह काम करता है! धन्यवाद। – n002213f

+1

कोई समस्या नहीं - अगर आप चाहें तो मेरा समाधान स्वीकार कर सकते हैं! (मुझे अंक चाहिए!)। – Adamski

संबंधित मुद्दे