2017-06-29 51 views
0

我在桌面應用程序中使用SWT,在那裏我使用GridLayout由5列和一行分開,有一個使用空間頂部的tabble,在底部我有3個按鈕,我想把這3個按鈕放在右邊。基本上跳了兩個第一空間。我試過使用:SWT - 不使用GridLayout的第一和第二列

GridData gridData = new GridData(); 
gridData.grabExcessHorizontalSpace = true; 
gridData.horizontalAlignment= GridData.END; 
CompanyGroup.setLayoutData(gridData); 

但我意識到這種方法只在列內對齊。

Composite rightComp = DialogCompositeFactory.create(parent); 
rightComp.setLayout(new GridLayout(1, false)); 
Group CompanyGroup = DialogGroupFactory.create(rightComp,Message)); 
CompanyGroup.setLayout(new GridLayout(5, true)); 

像下面

Example

回答

0

的例子只是把空標籤控件中的前兩列。

// Empty first column 
new Label(CompanyGroup, SWT.LEAD); 

// Empty second column 
new Label(CompanyGroup, SWT.LEAD); 

... your buttons in the last three columns 
+0

我知道這會工作,但我想它不是一個很好的解決方案 –

+0

這是一個非常標準的事情,你必須在列中加入一些東西。另一種方法是使用另一個答案中建議的單獨組合。 –

0

我假設你有一個按鈕的組合,如果沒有創建按鈕的複合材料,並設置一個GridDataHORIZONTAL_ALIGN_END

Composite buttonsComposite = new Composite(groupComp, SWT.NONE); 
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END); 
GridLayout lo = new GridLayout(3,true); 
buttonsComp.setLayoutData(gd); 
buttonsComp.setLayout(lo); 
相關問題