2010-03-22 4 views
3

Я вызываю метод addNotify() в классе, который я разместил здесь. Проблема заключается в том, что при вызове addNotify(), как и в коде, setKeys (objs) ничего не делает. В моем проводнике приложения ничего не появляется.для цикла не работает allright

Но когда я вызываю addNotify() без цикла (для int ....) и добавляю только один элемент в 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

повторно задать: это д действительно не было никакого «Netbeans-Несс» к нему. – vkraemer

+0

Первоначально было вопросом, почему addNotify не работает. Я редактировал заголовок после раскрытия сути проблемы – joseph

ответ

5

Посмотрите на эту петлю:

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

Это собирается начать с I = 0, и будет держать в то время как я == 10. Я думаю, что вы имели в виду:

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

(Лишние пробелы добавлены только для ясности.)

+0

Проблема решена, спасибо. – joseph

1

Джон прав ... ваш цикл очень вероятно, будет неправильным.

Вот перевод ваши для цикла в цикл в то время, просто чтобы уточнить его наблюдение еще ...

Вашего цикл в настоящее время означает, что этот ... (в то время как петли-Несс)

int i = 0; 

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

addNotify никогда не вызывается, потому что добавить никогда не вызывается ...

+0

это сюрприз для меня. Хотя у меня не так много опыта в программировании, я часто использовал цикл. И это до сих пор не дошло до меня. – joseph

+0

Нет, вы не использовали цикл 'for', как это, и работали, потому что * он не работает *. – Bombe

+0

@Bombe - Я не пишу «вот так». Итак, да, я использовал для цикла в течение нескольких лет, и у меня никогда не было этой проблемы. – joseph

Смежные вопросы