当我按下swt程序中的按钮时,应该绘制一个新的复合材料。但是,如果我调整窗口大小,则仅显示复合。
我的gui中有一个复合(compLoad
),它被分配了一个新的复合
compHELP comHelp_ = new compHELP(compLoad, SWT.RESIZE);
我试过redraw()
但没有任何反应
答案 0 :(得分:0)
添加/删除控件时需要重新设置复合,请参阅
Composite.layout() // uses Composite.layout(true)
Composite.layout(boolean changed)
Composite.layout(boolean changed, boolean all)
请注意,SWT中的布局可能缓存其控件的首选大小(由Control.computeSize(int w, int h)
确定)。在添加新组件时,调用layout()
可能就足够了。如果首选大小可能已更改,或者子组合中发生更改,请使用带有changed/all
标志的方法以确保布局正确更新。
旁注:当Composite
的大小发生变化时,它会自动重新排列(正如您在调整窗口大小时所注意到的那样)。