2014-08-27 58 views
0

當我在我的swt程序中按下一個按鈕時,應繪製一個新的組合。但是隻有當我調整窗口大小時纔會顯示組合。 我被分配一個新的複合我如何重新繪製Java(SWT)組合?

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

我已經試過redraw()但沒有任何反應

+1

什麼是'compHELP'?它不是SWT API的一部分。你擴展'Composite'嗎? – Baz 2014-08-27 10:00:27

回答

0

複合需要添加/刪除控制時重新layouted在我的GUI複合(compLoad)見

Composite.layout() // uses Composite.layout(true) 
Composite.layout(boolean changed) 
Composite.layout(boolean changed, boolean all) 

注意,在SWT佈局可以緩存其控制的優選大小s(由Control.computeSize(int w, int h)確定)。當您添加新組件時,撥打layout()可能就足夠了。如果首選大小可能已更改,或者更改發生在子複合中,請使用帶有changed/all標誌的方法來確保您的佈局已正確更新。

注意:當Composite的尺寸發生變化時,它會自動重新佈局(正如您在調整窗口大小時發現的那樣)。

+0

謝謝!它用Composite.layout重繪(布爾變化,布爾全部) – user3824834 2014-08-27 11:20:14