SWT設定文字隨窗體大小變化
阿新 • • 發佈:2019-01-27
這裡我主要介紹其中兩種佈局,肯定可以滿足你的要求:
1.GridLayout佈局
比較重要的屬性有
GridData.FILL 通常與GridData類的物件屬性horizontalAlignment和verticalAlignment配合使用,充滿物件屬性指定的空間。
GridData. FILL_HORIZONTAL 水平充滿,元件充滿網格水平方向的空間。
GridData. FILL_VERTICAL 垂直充滿,元件充滿網格垂直方向的空間。
GridData. FILL_BOTH 雙向充滿,元件充滿水平和垂直方向的空間。
配合以下兩種屬性
grabExcessHorizontalSpace 搶佔額外的水平空間。
grabExcessVerticalSpace 搶佔額外的垂直空間。
既可以達到樓主要的效果了,
具體例項程式碼如下:
Text t1=new Text(shell,SWT.BORDER);
t1.setText("文字框 1");
gridData = new GridData();
gridData.verticalSpan = 2; //跨兩行
gridData.horizontalSpan=2; //跨兩列
gridData.verticalAlignment = GridData.FILL; //垂直方向充滿
gridData.grabExcessVerticalSpace = true; //搶佔垂直方向額外空間
gridData.horizontalAlignment = GridData.FILL;//水平方向充滿
gridData.grabExcessHorizontalSpace = true;//搶佔水平方向額外空間
t1.setLayoutData(gridData); //gridData用於文字框t1
==============================================================================
2.FormLayout佈局
比較重要的類:FormData和FormAttachment
Attachment 的含義是附著、貼上。FormAttachment 類就是用來指定元件在父容器中的
貼上位置。FormAttachment 計算元件貼上位置和元件大小的方法是依據下面的表示式:
y = ax + b
表示式中y 是縱座標,從上往下是正方向;x 是橫座標,從左至右是正方向;a 是斜率
(a=m/n,n≠0),b 是偏移量,沿x、y軸正方向的偏移量為正,反之為負。
具體例項:
FormAttachment formAttachment=new FormAttachment(b1); //指定B1為參照物
FormData formData2=new FormData(50,30); //建立FormData物件,寬度50,高度30
formData2.left=formAttachment; //b2的左邊緊貼與b1的右邊
b2.setLayoutData(formData2); //設定b2的佈局資料為formData2
Button b3=new Button(shell,SWT.PUSH);
b3.setText("B3");
FormData formData3=new FormData();//建立佈局資料物件formData3
formData3.top=new FormAttachment(b2,10,SWT.BOTTOM);//b2的底邊與b3的頂部距離為10
formData3.left=new FormAttachment(b2,0,SWT.LEFT);//b2的左邊與b3左邊位移為0,
//即左邊對齊
formData3.right=new FormAttachment(b2,0,SWT.RIGHT); //b2的右邊與b3右邊對齊
b3.setLayoutData(formData3); //設定b3的佈局資料為formData3
更詳細的例子可以參照《Java程式設計之swt教程》,我的資源空間裡有