2010-12-17 14 views
6

के लिए क्लिक करने के लिए स्पेस बार ट्रिगरिंग को अक्षम करना JButtons जेबटन पर क्लिक करने के समान स्पेस बार को दबाए जाने पर विचार करें (मान लें कि जेबटन के पास फोकस है, जिसे मैं यहां मान रहा हूं)। क्या इस व्यवहार को बंद करने का कोई तरीका है ताकि वे स्पेस बार दबाकर अनदेखा कर सकें?जेबटन

इसके अलावा, आमतौर पर, AbstractButtons के साथ ऐसा करने की तकनीक है?

+0

मैंने सोचा कि आपका प्रश्न बटन बहुवचन के बारे में था। स्पेस बार के साथ कुछ बटन काम करने के लिए यह बहुत अच्छा यूआई नहीं है और कुछ नहीं। तो आप एक समय में बटन क्यों बदलना चाहते हैं? – camickr

उत्तर

1

आप

jbutton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none"); 

करके अक्षम कर सकते हैं इस के लिए अन्य AbstractButton रों रूप में अच्छी तरह, इस तरह के JRadioButton रों के रूप में काम करने लगता है।

@camickr के रूप में बताते हैं below आप इस प्रकार एक ही बार में सभी JButton रों के लिए इसे हल कर सकते हैं:

InputMap im = (InputMap)UIManager.get("Button.focusInputMap"); 
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none"); 
im.put(KeyStroke.getKeyStroke("released SPACE"), "none"); 
+0

मुझे बताने के लिए धन्यवाद। उत्तर अपडेट किया गया। – aioobe

3

लिंक aioobe द्वारा दिए गए दिखाता है कि कैसे एक व्यक्ति बटन के लिए यह करने के लिए। आप क्या करेंगे आप सभी JButton के लिए यह करना चाहते हैं:

InputMap im = (InputMap)UIManager.get("Button.focusInputMap"); 
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none"); 
im.put(KeyStroke.getKeyStroke("released SPACE"), "none"); 

आप चेक बॉक्स और रेडियो बटन आप प्रत्येक विभिन्न इनपुट नक्शे के लिए ऊपर दोहराने की आवश्यकता होगी के लिए यह करने के लिए चाहते हैं।

आप Enter Key and Button पढ़ना चाह सकते हैं। यह वास्तव में आपके इच्छित चीजों के विपरीत करता है क्योंकि यह बताता है कि एंटर कुंजी का उपयोग होने पर बटन को कैसे बुलाया जाए। लेकिन यह समझाने में मदद कर सकता है कि यह समाधान रिवर्स में क्यों काम करता है।

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