2010-05-06 11 views
11

के बच्चों के क्रम में परिवर्तन मेरे मामले में मेरे पास SashForm के दो बच्चे हैं, लेकिन यह प्रश्न सभी Composite एस पर लागू होता है।एक एसडब्ल्यूटी कंपोजिट

class MainWindow { 
    Sashform sashform; 
    Tree child1 = null; 
    Table child2 = null; 

    MainWindow(Shell shell) { 
     sashform = new SashForm(shell, SWT.NONE); 
    } 

    // Not called from constructor because it needs data not available at that time 
    void CreateFirstChild() { 
     ... 
     Tree child1 = new Tree(sashform, SWT.NONE); 
    } 

    void CreateSecondChild() { 
     ... 
     Table child2 = new Table(sashform, SWT.NONE); 
    }  
} 

मुझे पहले से पता नहीं है कि इन तरीकों को किस क्रम में बुलाया जाएगा। मैं कैसे सुनिश्चित कर सकता हूं कि child1 बाईं ओर स्थित है, और दाईं ओर child2 है? वैकल्पिक रूप से, के बाद sashformके बच्चों के रूप में उनके आदेश को बदलने का कोई तरीका है?

वर्तमान में मेरे सबसे अच्छे विचार इस तरह प्लेसहोल्डर में डालने के लिए है:

class MainWindow { 
    Sashform sashform; 
    private Composite placeholder1; 
    private Composite placeholder2; 
    Tree child1 = null; 
    Table child2 = null; 

    MainWindow(Shell shell) { 
     sashform = new SashForm(shell, SWT.NONE); 
     placeholder1 = new Composite(sashform, SWT.NONE); 
     placeholder2 = new Composite(sashform, SWT.NONE); 
    } 

    void CreateFirstChild() { 
     ... 
     Tree child1 = new Tree(placeholder1, SWT.NONE); 
    } 

    void CreateSecondChild() { 
     ... 
     Table child2 = new Table(placeholder2, SWT.NONE); 
    }  
} 

उत्तर

13

जब आप child1 बनाते हैं, तो देखें कि क्या child2 पहले से ही instantiated किया गया है। अगर ऐसा है, तो इसका मतलब है child1, सही पर है, क्योंकि यह बाद में बनाया गया है, तो आप ऐसा करने के लिए है:

child1.moveAbove(child2); 

आशा है कि यह मदद करता है।

+0

ऐसा करता है। मैंने अभी 'moveAbove' के अस्तित्व को याद किया क्योंकि मैं' समग्र 'के तरीकों की तलाश में था। –

+1

इस जानकारी के लिए धन्यवाद :) ध्यान देने योग्य एक अच्छी बात यह है कि आप इसे शीर्ष पर ले जाने के लिए शून्य का उपयोग कर सकते हैं। –

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