2010-03-22 3 views
3

여기에 게시 한 클래스에서 addNotify() 메서드를 호출합니다. 문제는 코드에서 addNotify()를 호출 할 때 setKeys (objs)가 아무 것도하지 않는다는 것입니다. 내 앱 탐색기에 아무것도 표시되지 않습니다.에 대한주기가 작동하지 않습니다.

하지만 루프없이 (int ....) addNotify()를 호출하고 하나의 항목 만 ArrayList에 추가하면 해당 항목이 올바르게 표시됩니다.

어디에서 문제가 될 수 있는지 알고 있습니까? 이 루프에서 양도

class ProjectsNode extends Children.Keys{ 
private ArrayList objs = new ArrayList(); 

public ProjectsNode() { 


} 

    @Override 
protected Node[] createNodes(Object o) { 
    MainProject obj = (MainProject) o; 
    AbstractNode result = new AbstractNode (new DiagramsNode(), Lookups.singleton(obj)); 
    result.setDisplayName (obj.getName()); 
    return new Node[] { result }; 
} 

@Override 
protected void addNotify() { 
    //this loop causes nothing appears in my explorer. 
    //but when I replace this loop by single line "objs.add(new MainProject("project1000"));", it shows that one item in explorer 
    for (int i=0;i==10;i++){ 
     objs.add(new MainProject("project1000")); 
    } 
    setKeys (objs); 
} 

}

+0

태그 재 지정 :이 질문은 정말 어떤 '넷빈즈 다움'을하지 않았다. – vkraemer

+0

원래 addNotify가 작동하지 않는 이유가 궁금했습니다. 나는 문제의 본질을 밝힌 후에 제목을 편집했다. – joseph

답변

5

설명을 참조하십시오 : I = 0으로 시작하고 을 계속 것

for (int i=0;i==10;i++) 

동안 == 10. 나는 당신이 의미 생각 :

for (int i = 0; i < 10; i++) 

(여분의 공백은 단지 명확성을 위해 추가.)

+0

문제는 해결되었다, 고마워. – joseph

1

존이 ... 루프가 잘못 될 가능성이 높다 권리입니다. 여기

는 (동안 루프 다움)에 대한 루프 while 루프로, 단지 더 많은 자신의 관찰을 명확히하는 당신의 번역 ...

루프 현재이 의미 ...

입니다
int i = 0; 

while (i==10) { 
    objs.add(new MainProject("project1000")); 
    i++; 
} 
setKeys (objs); 

있는 addNotify은 ... 호출되지 않습니다 추가하기 때문에 호출되지 않습니다

+0

놀랍습니다. 프로그래밍에 대한 경험이 많지는 않지만 많은 시간 동안 사용되었습니다. 그리고 이것은 지금까지 나에게 결코 일어나지 않는다. – joseph

+0

아니요, 당신은'for' 루프를 이와 같이 사용하지 않았기 때문에 작동하지 않습니다 *. * 작동하지 않습니다. – Bombe

+0

@Bombe - "이와 같이"쓰지 않습니다. 그래서 예, 저는 2 년 동안 사이클에 사용 했었습니다. 나는이 문제를 한번도 경험하지 못했습니다. – joseph

관련 문제