1
ComponentListener出現問題。我正在使用它來檢查某個組件是否調整大小,如果是,則更新一些組件。Java - Swing/AWT ComponentListener意外行爲
的代碼看起來是這樣的,雖然這可能不會有太大的用途你:
@Override
public void componentResized(ComponentEvent e) {
// Graph resized, reposition slice nodes
Component c = e.getComponent();
if (graphHeight > 0) {
if (c == graph) {
int offset = (c.getHeight() - graphHeight)/2;
if (offset != 0) {
try {
controller.shiftSlice1NodesY(offset);
} catch (GraphIntegrityException e1) {
logger.error(e1.getMessage(), e1);
}
graphHeight = c.getHeight();
}
}
} else {
graphHeight = c.getHeight();
}
}
對於我的代碼一個部分我需要禁用此監聽器。看起來像這樣:
graph.removeComponentListener(this);
controller.parseFile(filename);
graph.addComponentListener(this);
一切順利,直到我再次添加組件偵聽器。此時componentResized方法被調用大約20次。它可能會緩衝我所看到的調整大小的事件。任何人都知道這裏發生了什麼?
我會檢查這東部時間的東西。第二個建議很好,謝謝! – bcoughlan 2010-03-30 00:15:52