SWT中setBounds/setSize方法失效原因分析
阿新 • • 發佈:2019-02-18
最近這幾天一直在看SWT的東西,沒有買書,在網上看別人的帖子,blog,論壇。
總結的一點東西放在自己的blog裡,方便查詢。
這裡是SWT中setBounds方法失效原因分析
1: 跟控制元件所處的容器的佈局有關,比如那個按鈕在一個面板裡,而面板的佈局是充滿式佈局,或者卡片式佈局等,不管你怎麼設定按鈕的邊界值,它都是要充滿整個區域性區域的。所以你可以試一下把按鈕放入一個可控佈局的容器或者面板裡。
2:下面的一個論壇裡也寫了一些關於這個問題的:
http://dev.eclipse.org/newslists/news.eclipse.platform.swt/msg01758.html
******************************************
SWT.DEFAULT is not a valid size for setSize. SWT.DEFAULT is used in
Control.computeSize. Control.setSize takes the size in pixels only.
Also, combining setSize with a Layout will have strange effects - either use
a layout or manage the size and location yourself with setSize.
******************************************
解釋一下,上面的意思是說:在setSize的時候是不能用SWT.DEFAULT的。
第二段的意思是說,setSize和Layout同時使用可能會出問題。如果使用layout的話就不要用setsize了。
如果想自己設定元件的位置和大小的話,就用setsize而不要用layout了。這是上面e文的意思。
綜合上面兩條可以理解到,在使用setsize和setbounds的時候,父元件不要使用layout應該就可以了。
個人理解,歡迎批評指正。