[英]How can i repaint a composite in Java (SWT)?
当我在我的swt程序中按一个按钮时,应该绘制一个新的合成物。 但是,复合材料仅在我调整窗口大小时显示。 我的GUI中有一个Composite( compLoad
),它被分配了一个新的Composite
compHELP comHelp_ = new compHELP(compLoad, SWT.RESIZE);
我尝试过redraw()
但没有任何反应
添加/删除控件时 , 需要重新布局复合材料 ,请参见
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
的大小时,它将自动重新布局(如在调整窗口大小时所注意到的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.