2012-04-10 4 views
5

구성 요소 목록을 반복하여 Swing GroupLayout의 ParallelGroup에 추가 할 수 있습니까?Swing GroupLayout ParallelGroup에 반복적으로 구성 요소를 추가하는 방법은 무엇입니까?

ParallelGroup을 유지할 방법이 없기 때문에 어려운 것처럼 보입니다.

다음은 구성 요소 목록 (이 경우 JCheckBoxes)을 생성하는 코드입니다.

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는의 보류를 얻을 수있는 방법을 알고 있나요?

+3

일을. – Adam

+0

감사합니다. GroupLayout 너무 좋아, 너무 효과적입니다! – Arvanem

+1

(덜 유연한) [여기] (http://stackoverflow.com/a/8504753/230513)의 예가 있습니다. – trashgod

답변

6

나는 당신이하려는 일과 혼란을 볼 수 있습니다. new 연산자와 함께 익명 클래스 구문 만 사용할 수 있습니다. 예 :

그러나 ParallelGroup 인스턴스는 createParallelGroup (...) 팩토리 메소드로만 만들 수 있습니다.

당신은 병렬 그룹에 임시 참조 사용해야합니다 : GroupLayout, 최고의 있지만, 대부분의 사용 미만 레이아웃 매니저 이럴을 사용하는

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

이해해 주셔서 감사합니다. 효과적인 해결책과 추론을 위해 +1. – Arvanem

관련 문제