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

【Java】SashFormを使って分割画面を作るサンプル。【SWT】

Java SWT JFace GUIフレームワーク SashForm 分割画面

【Java】SashFormを使って分割画面を作るサンプル。【SWT】

SashFormとは


SWTで利用されるサイズ調整可能な画面分割コンポーネントです。
GUIアプリケーションを作る上で大変重要なコンポーネントのひとつです。
そう、仕切り棒をドラッグしてサイズを調整できるアレです。
すでにどんなアプリでもおなじみですね。

サンプル


以下のようなレイアウトの画面を作って見ます。
分割画面1分割画面2


以下がそのサンプルコードです。
楽するために?JFaceを使っています。
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
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;
/**
* SashFormを使ったサイズ調整可能なニ分割画面のサンプル
*/
public class SashFormTest extends ApplicationWindow {

public SashFormTest() {
super(null);
}

public static void main(String[] args) {
new SashFormTest().run();
}

public void run() {
setBlockOnOpen(true);
open();
Display.getCurrent().dispose();
}

@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText("SashForm test.");
shell.setSize(400, 400);
}

/**
* コンテンツを作成
* @param parent
*/
@Override
protected Control createContents(Composite parent) {
/**
* 土台コンポジット
*/
// 生成
Composite c = new Composite(parent, SWT.NONE);
// レイアウトを設定
c.setLayout(new GridLayout());

/**
* SashForm
*/
// 土台の上に生成 (水平分割のSashForm)
SashForm sash = new SashForm(c, SWT.HORIZONTAL);
// レイアウトデータを設定
sash.setLayoutData(new GridData(GridData.FILL_BOTH));
// 仕切り棒の太さを設定
sash.SASH_WIDTH = 10;

/**
* SashFormの上に載せるコンポーネント。その1
*/
// SashFormの上に生成
Text t1 = new Text(sash, SWT.NORMAL);
// レイアウトデータを設定
GridData data = new GridData();
t1.setLayoutData(data);

/**
* SashFormの上に載せるコンポーネント。その2
*/
// SashFormの上に生成
Text t2 = new Text(sash, SWT.NORMAL);
// レイアウトデータを設定
GridData data2 = new GridData();
t2.setLayoutData(data2);

// SashFormの分割割合を 1:3 に設定
sash.setWeights(new int[] { 1, 3 });

return c;
}

}


参考


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

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

作成日: 2007-10-17 13:23:42

最終更新日: 2007-10-17 13:23:42

▲このページの上へ