2009-10-20 20 views
9

एक jCombobox में setEditable() और setEnabled() के बीच क्या अंतर है? क्या एक combobox संपादन योग्य हो सकता है लेकिन सक्षम नहीं है और दूसरी तरफ? आप किस स्थिति में उपयोग करेंगे?JCombobox संपादन योग्य सक्षम

क्या आप ऐसी स्थिति की कल्पना कर सकते हैं जिसमें आप सेट (अक्षम) सेट के साथ सेट (सक्षम) सेट कर सकते हैं?

उत्तर

20

setEditable(boolean) निर्धारित करता है कि JComboBox पुल-डाउन के माध्यम से मूल्य चुनने के अलावा टेक्स्ट प्रविष्टि की अनुमति देता है।

setEnabled(boolean) निर्धारित करता है कि JComboBox बिल्कुल बातचीत करने में सक्षम है या नहीं। यदि यह सक्षम नहीं है, तो इसे ग्रेड आउट के रूप में प्रदर्शित किया जाता है।

  • setEditable(true) + setEnabled(true) = JComboBox इसके अलावा नीचे मूल्यों को खींचने के लिए और उपयोगकर्ता इसे साथ बातचीत कर सकते में पाठ इनपुट की अनुमति देता है -

    एक JComboBox इन गुणों के किसी भी मिश्रण हो सकता है।

  • setEditable(false) + setEnabled(true) = JComboBox केवल पुल डाउन से मूल्यों को चुनने की अनुमति देता है और उपयोगकर्ता इसके साथ बातचीत कर सकता है।
  • setEditable(true) + setEnabled(false) = JComboBox मूल्यों को खींचने के अलावा टेक्स्ट इनपुट की अनुमति देता है लेकिन उपयोगकर्ता इसके साथ बातचीत नहीं कर सकता है।
  • setEditable(false) + setEnabled(false) = JComboBox केवल पुल डाउन से मूल्यों को चुनने की अनुमति देता है और उपयोगकर्ता इसके साथ बातचीत नहीं कर सकता है।

एक स्थिति है जहाँ आप setEnabled(false) और setEditable(true) के साथ एक JComboBox हो सकता है हो सकता है जहाँ आप एक JComboBox कि पाठ इनपुट की अनुमति देता है चाहते हैं, लेकिन फार्म स्थिति में है जहां JComboBox का मूल्य लागू नहीं है। आपके पास आमतौर पर कुछ क्रियाएं होती हैं जो setEnabled(true) पर JComboBox पर लागू होने पर लागू होती हैं।

उदाहरण के लिए, यदि आपके पास छात्र आवास फॉर्म की तरह कुछ है, तो 'क्या आपको पार्किंग की जगह चाहिए?' जैसे फॉर्म पर एक प्रश्न हो सकता है। JCheckbox के साथ। कार के ब्रांड के लिए JComboBox और लाइसेंस प्लेट नंबर के लिए JTextFied है। आपके पास JComboBox सामान्य कार ब्रांडों - फोर्ड, चेवी, टोयोटा, होंडा इत्यादि के साथ प्री-पॉप्युलेट हो सकता है - लेकिन यह तय करें कि यदि आप किसी लेम्बोर्गिनी (और छात्र आवास में रह रहे हैं) में यह संपादन करने की अनुमति देना चाहते हैं - हाँ सही...)। कार ब्रांड और लाइसेंस प्लेट नंबर के लिए मूल्य की आवश्यकता नहीं है जब तक कि उपयोगकर्ता JCheckBox का चयन नहीं करता है कि उन्हें पार्किंग स्थान की आवश्यकता है।आप JCheckBox पर श्रोता जोड़ देंगे जो को JComboBox और JTextField पर चुना गया था, और setEnabled(false) जब यह नहीं था।

+0

एक गैर संपादन योग्य JComboBox फ़ील्ड में चयनित आइटम प्रदर्शित करता है, लेकिन चयन को संशोधित नहीं किया जा सकता है। http://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html#setEditable-boolean- – arley

1

सेटएनेबल() - कॉम्बो बॉक्स सक्षम करता है ताकि आइटम का चयन किया जा सके।

SetEditable() - यह निर्धारित करता है कि JComboBox फ़ील्ड संपादन योग्य है या नहीं।

7

यदि आप setEditable(true) पर कॉल करते हैं, तो JComboBox का टेक्स्ट फ़ील्ड संपादन योग्य हो जाता है, जिससे उपयोगकर्ता सूची से किसी आइटम को चुनने के अलावा कीबोर्ड के साथ टेक्स्ट टाइप करने की अनुमति देता है।

यदि आप setEnabled(false) पर कॉल करते हैं, तो संपूर्ण नियंत्रण अक्षम हो जाता है, जिससे उपयोगकर्ता को इसके साथ बातचीत करने से रोक दिया जाता है।

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