2010-03-22 57 views
3

我在這裏發佈的類中調用了addNotify()方法。問題是,當我在代碼中調用addNotify()時,setKeys(objs)什麼也不做。運行應用程序的瀏覽器中沒有顯示任何內容for cycle not works 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 2010-03-22 16:24:32

+0

原來這是爲什麼addNotify不起作用的問題。我在揭示問題的本質之後編輯了標題 – joseph 2010-03-22 16:30:50

回答

5

看這個循環:

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

這是怎麼回事其中i = 0開始,一直走而我== 10。我想你的意思是:

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

(多餘的空格添加只是爲了清楚起見。)

+0

問題解決了,謝謝。 – joseph 2010-03-22 16:18:19

1

喬恩是正確的...你的循環很可能是不正確的。

這裏是你的for循環變成一個while循環,只是爲了澄清他的觀察更翻譯...

你的循環意味着目前這...(在while循環岬)

int i = 0; 

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

的信息addNotify不會被調用,因爲添加從未被稱爲...

+0

這對我來說是驚喜。雖然我在編程方面沒有太多的經驗,但我多次用於循環。直到現在,這從來沒有發生過。 – joseph 2010-03-22 16:26:22

+0

不,你沒有像這樣使用'for'循環,並且它已經工作,因爲*它不起作用*。 – Bombe 2010-03-22 17:09:29

+0

@Bombe - 我不寫「這樣的」。所以,是的,我用了幾年的循環,我從來沒有遇到過這個問題。 – joseph 2010-03-22 17:21:30

相關問題