【发布时间】:2010-03-22 16:06:50
【问题描述】:
我在这里发布的类中调用 addNotify() 方法。问题是,当我在代码中调用 addNotify() 时, setKeys(objs) 什么也不做。我的正在运行的应用程序的资源管理器中没有显示任何内容。
但是当我在没有循环的情况下调用 addNotify()(for 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);
}
}
【问题讨论】:
-
retag:这个q真的没有任何“netbeans-ness”。
-
最初是为什么 addNotify 不起作用的问题。我在揭示问题本质后编辑了标题