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

【Java】FormLayoutの使い方。【SWT】

Java SWT FormLayout レイアウト GUI 画面 JFace

【Java】FormLayoutの使い方。【SWT】

FormLayoutとは


FormLayoutとはSWTで利用できるレイアウトのひとつです。
これひとつでGridLayoutなどの他のレイアウトの代替になる超便利なレイアウトです。
凝ったレイアウトも結構綺麗にコーディングできます。
今回はこんなレイアウトの画面を作ってみましょう。

テキストボックス
(横幅:成行、高さ:成行)
ボタン
(横幅:60、高さ:20)

親フォームとボタンやテキストボックスの隙間を5pt取ってみます。

サンプル


import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class MainTest extends ApplicationWindow {

/**
* main
*
* @param args
*/
public static void main(String[] args) {
new MainTest().run();
}

/**
* constructor
*/
public MainTest() {
super(null);
}

/**
* Runs the application
*/
public void run() {
setBlockOnOpen(true);
open();
Display.getCurrent().dispose();
}

/**
* Configures the shell
*
* @param shell
* the shell
*/
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
// set title.
shell.setText("Test.");
// set window size.
shell.setSize(200, 70);
}

/**
* put widgets on Parent Composite.
*/
@Override
protected Control createContents(Composite parent) {
Composite c = new Composite(parent, SWT.BORDER);

// ?親コンポジットのレイアウトをFormLayoutに設定
c.setLayout(new FormLayout());

// ?親コンポジットにボタンを置く
Button button = new Button(c, SWT.NULL);
button.setText("PUSH");
FormData buttonData = new FormData(60, 20); // 高さ20 x 横幅60 のボタン
buttonData.top = new FormAttachment(0, 5); // ボタンの上側を親コンポジットに揃える(縦位置0%、隙間5pt)
buttonData.right = new FormAttachment(100, -5); // ボタンの右側を親コンポジットの右側に揃える(右横位置100%、隙間-5pt)
button.setLayoutData(buttonData);

// ?親コンポジットにテキストボックスを置く
Text text = new Text(c, SWT.BORDER);
FormData textData = new FormData(); // サイズは無指定のテキストボックス
textData.top = new FormAttachment(0, 5); // 上側を親コンポジットに揃える(縦位置0%、隙間5pt)
textData.left = new FormAttachment(0, 5); // 左側を親コンポジットに揃える(左横位置0%、隙間5pt)
textData.right = new FormAttachment(button, 0); // 右側を?で作成したボタンの左側に揃える(隙間0pt)
text.setLayoutData(textData);

return parent;
}
}


参考


SWTのチラシノウラ
http://goodjob.boy.jp/chirashinoura/search/SWT.html

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

作成日: 2007-10-22 09:53:19

最終更新日: 2008-12-31 14:19:38

▲このページの上へ