1

4つのボタンを作成するメソッドがあります。ボタンは左から右に隣り合っています。

|-[b1] [b2] [b3] [b4]-----------------| <- edge of dialog

b2とb3の間に空きスペースを作りたい

|-[b1] [b2]-----------------[b3] [b4]-| <- edge of dialog

レイアウトをに変更しました

GridLayout gridLayout = new GridLayout(6, false);

しかし、ボタン間のスペースを確保する方法がわかりません。レイアウト内の特定のグリッド番号にボタンを割り当てることはできますか?

b1 = 1
b2 = 2
b3 = 5
b4 = 6 
4

1 に答える 1

4

Layout、左上から右下に向かって一度に1つのスロットで埋められます。したがって、スロットを「スキップ」することはできません。ただし、Gilbertがコメントですでに述べたように、「未使用」のスロットを空のラベルで埋めることができます。

Button buttonOne = new Button(parent, SWT.PUSH); // 1. slot
Button buttonOne = new Button(parent, SWT.PUSH); // 2. slot

new Label(parent, SWT.NONE)  // 3. slot
new Label(parent, SWT.NONE)  // 4. slot

Button buttonThree = new Button(parent, SWT.PUSH); // 5. slot
Button buttonFour = new Button(parent, SWT.PUSH); // 6. slot

それらを使用する予定がないため、それらを割り当てる必要はないことに注意してください( Label labelOne = ...)。


すべての列に等間隔を強制することをお勧めします。つまり、次を使用します。

GridLayout gridLayout = new GridLayout(6, true);

それ以外の

GridLayout gridLayout = new GridLayout(6, false);

GridDataそれ以外の場合は、ダミーに(水平方向に塗りつぶすために)を割り当てる必要がある場合がありますLabel


他のシナリオでは、以下を使用することも興味深い場合がhorizontalSpanありGridDataます。

Button button = new Button(parent, SWT.PUSH);
GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
data.horizontalSpan = 2;
button.setLayoutData(data);

この場合、ボタンはレイアウトの2つのスロットを占有します。

于 2012-10-11T17:47:09.230 に答える