0

导入 java.awt.event.* 后,我使用以下代码将组件侦听器添加到扩展 GCanvas 的类中:

public NameSurferGraph() {
addComponentListener(this);
nameList = new ArrayList<NameSurferEntry>();
}

public void componentHidden(ComponentEvent e) { }
public void componentMoved(ComponentEvent e) { }
public void componentResized(ComponentEvent e) { update(); }
public void componentShown(ComponentEvent e) { }

public void update() {
removeAll();
drawBackground();
if (nameList.size()>0) {
for (int i=0; i<nameList.size(); i++) {;
drawLineForOneName(i);
}
}
}

但是当我从另一个类调用它的方法时,什么也没有发生。

public NameSurferGraph graph = new NameSurferGraph();

public void graphName(String name) {
entry = database.findEntry(name);
graph.addEntry(entry);
graph.update();
}

关于我可能做错了什么的任何想法?

4

1 回答 1

0

由于您没有提供足够的代码,我只能猜测:

您的调用从removeAll();中删除所有元素nameList,因此if阻止您进入循环(即使没有,循环体将执行 0 次,因为空集合的大小为 0)

于 2012-04-16T00:39:08.063 回答