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設計画面では、プロパティウィンドウでも表示できて、設定できるようになっています。

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