2011-12-12 24 views
8

मेरे पास मेरे आवेदन में एक jcombobox है। और मैं इसे एकाधिक चयन का समर्थन करना चाहता हूं (जैसे यह एक jlist में करता है)। कोई कोड उदाहरण है?JcomboBox एकाधिक चयन

उत्तर

6

मुझे लगता है कि यह संभव नहीं है, जब तक कि आप एक जेएलिस्ट का उपयोग न करें, जैसा कि आपने कहा था।

JComboBox API रिपोर्ट:

उपयोगकर्ता ड्रॉप-डाउन सूची है, जो उपयोगकर्ता के अनुरोध पर प्रकट होता है से एक मूल्य का चयन कर सकते हैं।

और एक JComboBox tutorial:

सूचियाँ बहुत आकर्षक नहीं हैं, लेकिन वे कॉम्बो बक्से की तुलना में अधिक उचित जब आइटम की संख्या बड़ी है कर रहे हैं (जैसे कि, 20 से अधिक) या जब चयन कई आइटम मान्य हो सकते हैं।

अद्यतन:

मैं इस जवाब की समीक्षा की, क्योंकि वास्तव में यह एक ListCellRenderer का उपयोग कर कि, प्रत्येक आइटम के लिए एक चेकबॉक्स जोड़ने करने के लिए "संभव" है। इस "समाधान" को लागू करने के लिए कृपया this answer पर विचार करें।

हालांकि, मैं यह निम्नलिखित कारणों के लिए एक अच्छा विचार है नहीं लगता है:

  1. वहाँ एक JList कि कई चयन की अनुमति देता है की तरह एक नियंत्रण है,
  2. एक JComboBox नियंत्रण केवल एक आइटम चयन के लिए डिज़ाइन किया गया है;
  3. यह अभी भी मुझे JComboBox नियंत्रण का उपयोग करने और एकाधिक चयन की अनुमति देने के लिए समझ में नहीं आता है।
+0

बहुत बेकार है, धन्यवाद किसी भी तरह से –

+0

मैं जानता हूँ कि यह एक बहुत बेकार है।आपका स्वागत है :-) –

+0

नहीं, यह संभव है लेकिन रेंडरर – PeerNet

0

यह काफी असंभव नहीं है, लेकिन वहाँ करने के लिए बहुत काम काम किया जाना है। इन सभी को विस्तार/कार्यान्वित करने के लिए आपको अपनी कक्षाएं बनाने की आवश्यकता होगी:

  • ListCellRenderer (ताकि आप पॉपअप दिखा रहे समय चयनित आइटम को चिह्नित कर सकें और संकेत दें (कम से कम) कि जब यह नहीं होता है तो कई चयन होते हैं) ।
  • JComboBox (जाहिर है)
  • BasicComboBoxUI (यह वास्तव में है, जहां काम के सबसे अधिक है)
  • BasicListUI (कम से कम मैं था)
  • ComboBoxModel
और आप अपने खुद के विकसित करने के लिए की आवश्यकता होगी क्लास जो आइटम लिस्टनर, माउसलिस्टर, पॉपअपमेनू लिस्टनर, माउसमोशन लिस्टनर, प्रॉपर्टी चेंजलिस्टर, की लिस्टनर, लिस्टसेलेक्शन लिस्टर लागू करता है।
संकेत: आपको कई स्थानों को बाईपास करने के लिए UI कक्षाओं में कई createXXXListener() विधियों को ओवरराइड करने की आवश्यकता होगी जहां कई चयनों को त्याग दिया जाता है।
[और यह अभी भी एक संपादन योग्य बहु चयन कॉम्बो के लिए अनुमति नहीं है।]

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