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 に答える