SWT

GridLayoutの上から下までレイアウトの配置手順について

上の図の構造:

トップのcompositeが父コントロールだ、これのレイアウトはGridLayoutです。

1
2
3
4
5
6
7
Composite composite = new Composite(shell, SWT.NONE);
// 1:GridLayoutの列が1列、
// true:この列の幅はスクリーンの幅
GridLayout gl_composite = new GridLayout(1, true);
gl_composite.marginWidth = 0;
gl_composite.marginHeight = 0;
composite.setLayout(gl_composite);

黄色いアリアがcompositeHeadです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Composite compositeHead = new Composite(composite, SWT.NONE);
compositeHead.setBackground(SWTResourceManager.getColor(SWT.COLOR_YELLOW));
// GridDataのパラメーター:
// horizontalAlignment:水平方向に配置される: SWT.BEGINNING (or SWT.LEFT), SWT.CENTER, SWT.END (or SWT.RIGHT), or SWT.FILL
// verticalAlignment:垂直方向に配置される : SWT.BEGINNING (or SWT.TOP), SWT.CENTER, SWT.END (or SWT.BOTTOM), or SWT.FILL
// grabExcessHorizontalSpace:セルが水平方向に満ちている
// grabExcessVerticalSpace:セルが垂直方向に満ちている
// horizontalSpan:コントロールを取るという列のセルの数
// verticalSpan:コントロールを取るという行のセルの数
GridData gd_composite_1 = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
gd_composite_1.heightHint = 30;
compositeHead.setLayoutData(gd_composite_1);

センターアリアがcompositeCenterです。

1
2
Composite compositeCenter = new Composite(composite, SWT.NONE);
compositeCenter.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));

赤いアリアがcompositeBottomです。

1
2
3
4
5
Composite compositeBottom = new Composite(composite, SWT.NONE);
compositeBottom.setBackground(SWTResourceManager.getColor(SWT.COLOR_RED));
GridData gd_composite_2 = new GridData(SWT.FILL, SWT.BOTTOM, false, false, 1, 1);
gd_composite_2.heightHint = 40;
compositeBottom.setLayoutData(gd_composite_2);

SWTビューのフルスクリーン表示について

ビューのフルスクリーン表示ときに、下記の手法で実現出来ると思いいます。

  • SWT.NO_TRIMプロパティを設定する。

使用例:

1
2
3
Shell shell = new Shell(SWT.NO_TRIM);
shell.setBounds(Display.getDefault().getPrimaryMonitor().getBounds());
// shell.setBounds(Display.getDefault().getClientArea());
  • SWT.ON_TOPプロパティを設定する。 使用例:
1
2
3
Shell shell = new Shell(SWT.ON_TOP);
shell.setBounds(Display.getDefault().getPrimaryMonitor().getBounds());
// shell.setBounds(Display.getDefault().getClientArea());

総括:

  • 2桁と3桁の区別: 2桁タスク・バーは表示しません。3桁タスク・バーは表示する。
  • SWT.NO_TRIMとSWT.ON_TOPの区別: ①SWT.NO_TRIM:タスク・バーでビューが閉めることができます。 SWT.ON_TOP:タスク・バーでビューが閉めることができません。 ②SWT.NO_TRIM:タスク・バーで、ビューのアイコンは表示する。 SWT.ON_TOP:タスク・バーで、ビューのアイコンは表示しません。

説明:①タスク・バーは表示する。②タスク・バーで、ビューのアイコンは表示する。③タスク・バーでビューが閉めることができます。

説明:①タスク・バーは表示しない。②タスク・バーで、ビューのアイコンは表示しない。③タスク・バーでビューが閉めることができません。

カスタマイズのComposite

既存SWTコントロールなどを組み合わせて、カスタマイズの使い方法を示します。

下記のような、複雑な領域で複数コントロールが存在したら、 カスタマイズCompositeとして使うの方がいいと思います。

これから、作成手順を列挙します。

  • 新しいCompositeを新規してください。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  • Composite設計画面では、Windowと同じように設計してください。

  • Paletteに設計コントロールを追加すること

種類・カテゴリ

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

追加したカテゴリから、コンポーネントを追加する

  • 終わってから、Window画面に戻って追加したカスタマイズコントロールを利用できるようになりました。

注意: カスタマイズコントロールのクラスでは、下記のようにprivate変数を追加したら、Window設計画面では、プロパティウィンドウでも表示できて、設定できるようになっています。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓