2017-06-29 45 views
0

デスクトップアプリケーションで、GridLayoutを5列と1行に分割して使用しているSWTを使用しています。一番下には3つのボタンがあります。これらの3つのボットンを右に配置したいと思います。基本的に2つの最初のスペースを飛ばします。私は使用しようとしました:SWT - GridLayoutで第1列と第2列を使用しない

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

しかし、私はこのメソッドが列内にのみ揃うことに気付きました。

Example

答えて

0

以下の例のように

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

はちょうど最初の2列に空のラベルコントロールを配置します。

// 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); 
関連する問題