←フエルチラシノウラ。トップページへもどる。

【Java】GridLayoutを利用して複雑なレイアウトを作るサンプル。【SWT】

Java SWT GUIフレームワーク レイアウト GridLayout グリッドレイアウト

【Java】GridLayoutを利用して複雑なレイアウトを作るサンプル。【SWT】

目的


SWTを利用して3つのボタンを以下のようにレイアウトしてみます。

[button0]
高=成行
幅=80
[button1]
高=50
幅=成行
[button2]
高=成行
幅=成行


サンプルコード


import org.eclipse.swt.*;
import org.eclipse.swt.custom.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
/**
* SWTのGridLayoutを利用するサンプル。
*
*/
public class MyLayout {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell (display);

// 親のレイアウトを2列のグリッドレイアウトに設定
GridLayout gridLayout = new GridLayout ();
gridLayout.numColumns = 2;
shell.setLayout (gridLayout);

//******************************************
* button0
******************************************/
Button button0 = new Button (shell, SWT.PUSH);
button0.setText ("button0");
// レイアウトデータを生成。
GridData data = new GridData ();
// 幅を80に設定。
data.widthHint = 80;
// セルを上下に2行分マージする。
data.verticalSpan = 2;
// 上下に成行で広げる。
data.grabExcessVerticalSpace = true;
data.horizontalAlignment = GridData.FILL;
data.verticalAlignment = GridData.FILL;
// レイアウトデータをセット。
button0.setLayoutData (data);

//******************************************
* button1
******************************************/
Button button1 = new Button (shell, SWT.PUSH);
button1.setText ("button1");
// レイアウトデータを生成。
data = new GridData ();
// 高さを50に設定。
data.heightHint = 50;
// 左右に成行で広げる。
data.grabExcessHorizontalSpace = true;
data.horizontalAlignment = GridData.FILL;
data.verticalAlignment = GridData.FILL;
// レイアウトデータをセット。
button1.setLayoutData (data);

//******************************************
* button2
******************************************/
Button button2 = new Button (shell, SWT.PUSH);
button2.setText ("button2");
// レイアウトデータを生成。
data = new GridData ();
// 左右に成行で広げる。
data.grabExcessHorizontalSpace = true;
data.horizontalAlignment = GridData.FILL;
data.verticalAlignment = GridData.FILL;
// レイアウトデータをセット。
button2.setLayoutData (data);

shell.pack ();
shell.open ();

while (!shell.isDisposed ()) {
if (!display.readAndDispatch ())
display.sleep ();
}
display.dispose ();
}
}


ポイント


各ボタンコンポーネントにおけるレイアウトデータの設定がポイントとなります。

1.GridData#heightHint や GridData#widthHint で高さや幅を設定。
2.GridData#verticalSpan や horizontalSpan でセルをマージ。
3.GridData#grabExcessVerticalSpace や GridData#grabExcessHorizontalSpace で空きスペースを埋める。
4.GridData#horizontalAlignment や GridData#verticalAlignment でAlignmentを調整。

http://goodjob.boy.jp/chirashinoura/id/160.html

作成日: 2007-10-16 11:11:39

最終更新日: 2007-10-16 11:27:54

▲このページの上へ