Databind ListView from ArrayList - javafx -
मेरे पास एक ArrayList है:
सूची & lt; कॉलम & gt; ListOfColumns = नया ArrayList ();
मैं इस सूची को सूची में कैसे बाँध सकता हूँ? इसे हमेशा इस सूची में कॉलम दिखाना चाहिए।
इसके अलावा, मैं
अंतिम पर्यवेक्षी लिस्ट & lt; कॉलम & gt; डेटा = FXCollections.observableArrayList ();
अभी सूची बनाने के लिए केवल स्तंभ होते हैं, लेकिन एक कॉलम एक वस्तु है जिसमें एक नाम (स्ट्रिंग) और एक सरणी सूची है, इसलिए अभी मेरी सूचीदृश्य दोनों के नाम को दर्शाती है स्तंभ और स्तंभ में सरणी सूची की सामग्री। क्या सूचीई केवल कॉलम के नाम को दिखाने का कोई तरीका है?
इसके कारण मैं इसे पसंद करता हूं यह इसलिए है, क्योंकि मैं listView.getSelectionModel () का उपयोग कर सकते हैं। GetSelectedItem (), और यह एक कॉलम देता है
यह देखते हुए कि स्तंभ
एक के साथ एक POJO है स्ट्रिंग फ़ील्ड और एक
ArrayList
, डिफ़ॉल्ट रूप से आप ListView
में देख सकते हैं toString ()
विधि द्वारा दिया जाता है।
< P> आपको केवल यह विधि को अनुकूलित करने की आवश्यकता है कि आप क्या चाहते हैं: निजी वर्ग स्तंभ {निजी स्ट्रिंग का नाम; निजी अर्रे लिस्ट & lt; स्ट्रिंग & gt; सूची; पब्लिक कॉलम (स्ट्रिंग नेम, ऐरेलिस्ट सूची) {this.name = name; This.list = सूची; } // getters और setters @ ओवरराइड सार्वजनिक स्ट्रिंग toString () {// वापसी का नाम + सूची; वापसी का नाम; }}
फिर भी, एक पंक्ति चयनित होने पर श्रोता एक स्तंभ
ऑब्जेक्ट वापस करेगा। यदि आप toString ()
का उपयोग कर रहे हैं या सिर्फ स्ट्रिंग फ़ील्ड पर पहुंचने पर निर्भर करता है, तो आप वहां क्या प्रिंट करते हैं:
list.getSelectionModel ()। SelectedItemProperty ()। AddListener (( देखने योग्य, पुरानावॉल्यू, न्यू वैल्यू) - & gt; {System.out.println ("चयनित आइटम:" + newValue); System.out.println ("चयनित आइटम:" + newValue.getName ());});
Comments
Post a Comment