2011-01-06 45 views
20

बदलें मैं डेटाबेस से डेटा मान सफलतापूर्वक प्राप्त कर रहा हूं। मैंने उन्हें String[] सरणी में भी संग्रहीत किया है। कुंजी एक्शनपरफॉर्म के जवाब में मुझे JComboBox के आइटम के रूप में स्ट्रिंग सरणी लोड करने की आवश्यकता है। जब भी कोई कुंजी दबाया जाता है, तो JComboBox के आइटम को फिर से लोड कैसे किया जा सकता है, जब दबाए गए कुंजी पर दबाए गए कुंजी पर निर्भर करता है। इसके बजाय, मुझे JComboBox आइटमों को गतिशील रूप से रीफ्रेश करने की आवश्यकता है।गतिशील रूप से JComboBox

उत्तर

29
DefaultComboBoxModel model = new DefaultComboBoxModel(yourStringArray); 
comboBox.setModel(model); 
+0

अपने जवाब के लिए धन्यवाद, लेकिन आप इस illustrarte करने के लिए एक कोड पोस्ट करें कर सकते हैं। यह बहुत उपयोगी होगा। मुझे यकीन नहीं है कि DefaultComboBoxModel क्लास में क्या लिखना है। –

+0

वह कोड है। आप DefaultComboBoxModel क्लास में कुछ भी नहीं लिखते हैं। आप स्ट्रिंग्स की अपनी सरणी का उपयोग करके मॉडल बनाते हैं और फिर कॉम्बो बॉक्स में मॉडल जोड़ते हैं। – camickr

6

आपके पास कुछ विकल्प हैं। चुनिंदा वस्तुओं में हेरफेर करने के लिए आप removeAllItems() (या अन्य निकालने के तरीकों में से एक) और addItem(Object anObject) का उपयोग कर सकते हैं। या आप ComboBoxModel को कार्यान्वित कर सकते हैं और इसे अपने सरणी से डेटा प्रस्तुत करने की अनुमति दे सकते हैं।

6

यह डिफ़ॉल्ट कॉम्बो बॉक्स मॉडल

public class ComboPanel extends JPanel { 

    JComboBox jcbo; 
    // this is constructor 
    public ComboPanel(ArrayList<String> items) { 
     jcbo = new JComboBox(); 
     // getting exiting combo box model 
     DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel(); 
     // removing old data 
     model.removeAllElements(); 

     for (String item : items) { 
      model.addElement(item); 
     } 

     // setting model with new data 
     jcbo.setModel(model); 
     // adding combobox to panel 
     this.add(jcbo);  
    } 
} 

illustrating के लिए डेमो मुझे आशा है कि यह मदद मिलेगी थोड़ा :)

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