2012-04-10 9 views
5

क्या घटकों की सूची में पुन: प्रयास करने का कोई तरीका है और उन्हें स्विंग ग्रुपलाउट में समांतर समूह में जोड़ें?एक स्विंग समूह Layout समांतर समूह में घटक जोड़ने के लिए कैसे?

ऐसा लगता है क्योंकि समांतर समूह को पकड़ने के लिए कोई विधि नहीं है।

यहां कोडों की एक सूची उत्पन्न करने वाला कोड है (इस मामले में, जेसीकबॉक्स)।

List<JCheckBox> listCustomiseJCB = new ArrayList<>(); 
    for (int w = 0; w < initialCMTableColumns.size(); w++) { 
     String heading = (String)initialCMTableColumns.get(w).getHeaderValue(); 
     listCustomiseJCB.add(new JCheckBox(heading)); 
    } 

सूची काम कर रहा है, लेकिन मैं सूची एक GroupLayout के ParallelGroup में प्रत्येक JCheckbox डालने के लिए अधिक कैसे पुनरावृति कर सकते हैं? उदाहरण के लिए, नीचे कोड संकलित नहीं होगा।

GroupLayout gl = new GroupLayout(jpnlCustomise); 
    jpnlCustomise.setLayout(gl); 
    gl.setAutoCreateContainerGaps(true); 
    gl.setAutoCreateGaps(true); 

    GroupLayout.SequentialGroup hGroup = gl.createSequentialGroup(); 

    hGroup 
      .addComponent(jbtnApply); 
    hGroup.addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER) 
      // ERRORS BEGIN HERE 
      { for (JCheckBox c: listCustomiseJCB) { 
      .addComponent(c); 
      }}); 
      // ERRORS END HERE 
    hGroup 
      .addComponent(jbtnCancel); 

    gl.setHorizontalGroup(hGroup); 

वैकल्पिक रूप से, किसी को भी एक तरह से एक ParallelGroup की पकड़ पाने के लिए के बारे में पता है, ताकि मैं iteratively पाश के लिए एक स्टैंडअलोन में उस समूह के लिए अवयव जोड़ सकता है?

+3

+1। – Adam

+0

धन्यवाद। मुझे ग्रुपलाउट भी पसंद है, यह बहुत प्रभावी है! – Arvanem

+1

एक (कम लचीला) उदाहरण है [यहां] (http://stackoverflow.com/a/8504753/230513)। – trashgod

उत्तर

6

मैं देख सकता हूं कि आप क्या करने की कोशिश कर रहे हैं और आपका भ्रम। आप नए ऑपरेटर के साथ केवल अनाम वर्ग वाक्यविन्यास का उपयोग कर सकते हैं। यानी

new LinkedList<String>() { 
    { 
    add("bar"); 
    } 
}; 

हालांकि ParallelGroup उदाहरणों केवल कारखाने विधि createParallelGroup (...) के साथ बनाया जा सकता है।

आप समानांतर समूह के लिए एक अस्थायी संदर्भ का उपयोग करना होगा: GroupLayout, सबसे अच्छा लेकिन सबसे underused लेआउट प्रबंधक IMHO प्रयोग करने के लिए

ParallelGroup pGroup = gl 
     .createParallelGroup(GroupLayout.Alignment.CENTER); 
hGroup.addGroup(pGroup); 
for (JCheckBox c : listCustomiseJCB) { 
    pGroup.addComponent(c); 
} 
+1

आपकी समझ के लिए धन्यवाद। प्रभावी समाधान और आपके तर्क के लिए +1। – Arvanem

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