如何在Java(SWT)中重新绘制复合?

时间:2014-08-27 09:55:25

标签: java swt paint composite

当我按下swt程序中的按钮时,应该绘制一个新的复合材料。但是,如果我调整窗口大小,则仅显示复合。 我的gui中有一个复合(compLoad),它被分配了一个新的复合

compHELP comHelp_ = new compHELP(compLoad, SWT.RESIZE);

我试过redraw()但没有任何反应

1 个答案:

答案 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的大小发生变化时,它会自动重新排列(正如您在调整窗口大小时所注意到的那样)。