2012-12-19 14 views
6

मैं एक वर्ग है कि वस्तु FXCollections.observableArrayList() द्वारा लेकिन कुछ अतिरिक्त कार्यक्षमता के साथ लौट आए लगभग समान है बनाना चाहते हैं ObservableListWrapper का विस्तार। मेरी पहली सोचा की तरहObservableList लागू,

public class MyObservableList implements ObservableList 
{ 
    private ObservableList list = FXCollections.observableArrayList(); 

    public functionWhatever() 
    { 
     // whatever 
    } 

} 

कुछ था, लेकिन है कि ~ 30 कार्यों कि ObservableList के साथ आते हैं (जो एक संकेत है कि मैं कुछ गलत कर रहा हूँ की तरह लगता है) अधिभावी का मतलब है।

FXCollections.observableArrayList() प्रकार com.sun.javafx.collections.ObservableListWrapper की एक वस्तु देता है, लेकिन जब मैं ObservableListWrapper विस्तार मैं

MyObservableList(List arg0) 

या

MyObservableList(List arg0, Callback arg1) 

जो मुझे चिंता है क्योंकि FXCollections.observableArrayList() स्वीकार नहीं करता है की तरह एक निर्माता बनाने के लिए आवश्यक कर रहा हूँ कोई तर्क

मैं नहीं जानता कि कैसे FXCollections है कि यह देता है, लेकिन मैं MyObservableList वस्तु FXCollections द्वारा दिया (प्लस एक जोड़ी अतिरिक्त कार्यों) के समान होना चाहता हूँ ObservableListWrapper वस्तु बनाता है।

मैं यह कैसे कर सकता हूं?

+0

'' ObservableList' लागू करता List' और 'Observable'। क्या होगा यदि आप अपनी सूची बना, यह एक 'List'-लागू करने वर्ग से विरासत और बनाने' 'ObservableList' के बजाय Observable', या आप कुछ है कि' ObservableList' की आवश्यकता है के लिए इसका इस्तेमाल करने की जरूरत है? –

+1

समस्या यह है कि JavaFX पूरे स्थान पर ऑब्जर्वेबललिस्ट का उपयोग करता है। एक ObservableList वस्तु बनाने के लिए आधिकारिक रास्ता FXCollections.observableArrayList के माध्यम से है()। मैं अपनी कक्षा द्वारा बनाई गई वस्तुओं को समान होना चाहता हूं (क्योंकि कौन जानता है कि भविष्य में क्या बदल जाएगा) लेकिन अतिरिक्त कार्यों के साथ। – beardedlinuxgeek

+0

क्या आप एक रैप-अप प्रतिनिधि का उपयोग कर सकते हैं? – Rekin

उत्तर

2

बढ़ाएँ SimpleListPropertydocs.oracle.com

इस वर्ग के एक प्रॉपर्टी किसी ObservableList लपेटकर का एक पूरा कार्यान्वयन प्रदान करता है।


सूचना इस ctor:

सार्वजनिक SimpleListProperty (ObservableList initialValue)

तो आप कर सकते हैं:

public class MyObservableList extends SimpleListProperty 
{ 
    //constructor 
    MyObservableList(){ 
     super(FXCollections.observableArrayList()); 
    } 

    public functionWhatever() 
    { 
     // whatever 
    } 

} 

इस तरह अपनी कक्षा एक ArrayList पर आधारित होगा।

+1

धन्यवाद, यह वास्तव में क्या मैं – beardedlinuxgeek

+1

खुशी है कि मैं मदद कर सकता है की जरूरत थी – drzymala

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