繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM