2009-05-14 6 views
1

패널에 다양한 양의 라벨을 추가하는 데 문제가 있습니다. 내 문제는 어떤 이유로 내 ClickListener을 추가 할 때 위젯 (오류) 대신 void을 반환합니다. 방금 "새로운 레이블 ('xyz')"이 제대로 작동하지만 각 패널에 자체적으로 ClickListener이 있어야합니다. 다음은 코드입니다.패널에 동적 위젯 추가 (GWT)

for (int x = 0; x < productIDArray.length(); x++) { 
    mainPanel.add(new Label("Test").addClickListener(new ClickListener() { 
    @Override 
    public void onClick(Widget sender) { 
     // TODO Auto-generated method stub 
    } 
    })); 
} 

답변

3

메소드 체인의 리턴 값은 항상 마지막 값입니다. 새 A().b().c()을 변경하면 리턴 된 유형은 c의 리턴 유형이됩니다.

예에서 반환 유형 new Label("Test").addClickListener(...은 ClickListener의 addClickListener 반환 유형이며 void입니다.

당신은 레이블을 만들 추가 한 후 클릭 리스너를 추가 할 수 있습니다 :

for(int x = 0;x<productIDArray.length();x++) { 
    Label l = new Label("Test); 
    l.addClickListener(...); 
    mainPanel.add(l); 
} 
+0

감사합니다, 나는 그냥 같은 레이블을 추가하거나 때문에 루프의 오류를 던져 계속 걱정했지만, 난 그렇지 않다는 것을 알아라. – Organiccat