看起来像我的布局的缓存是过时的,需要刷新。
SWT中的布局支持高速缓存,通常会缓存控件的首选大小,或者任何喜欢缓存的内容:
public abstract class Layout {
protected abstract Point computeSize (Composite composite, int wHint, int hHint, boolean flushCache);
protected boolean flushCache (Control control) {...}
protected abstract void layout (Composite composite, boolean flushCache);
}
我比较新的SWT编程(前Swing程序员),但遇到了类似的布局未正确更新的情况。我通常能够使用其他布局方法来解决它们,这些方法也会导致布局刷新其缓存:
layout(boolean changed)
layout(boolean changed, boolean allChildren)
希望有帮助…