SWT の機能
このページでは,SWT の機能を,図解で説明する.
- SWT の全機能はとても紹介しきれないので,代表的な機能を選んで紹介します.
- SWT の機能の一部分を使って,グラフィカル・ユーザ・インタフェースを作るための専用の関数( createShell() 関数など )を作る.
- その関数を使って,実際に簡単なグラフィカル・ユーザ・インタフェースを作る.そうした実例を使って,SWT の説明を行う.
- SWT で何ができるか,のうち,簡単なものを一通り把握することを目標とします.
準備事項
Shell オブジェクト
プログラムの実例
【要点】
- createShell() 関数:
SWT の Shell オブジェクトを生成(生成された Shell オブジェクトは,フォーム部品の配置などで使用される). Shell オブジェクトの生成時に,ウインドウタイトルの設定,ウインドウサイズの設定,リサイズを許すかなどを設定する機能がある
- main() 関数
createShell() 関数のテスト用
package hoge.hoge.com;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class HelloWorld {
public static Shell createShell( Display display, String title, int width, int height, boolean resizable, int ncolumns ) {
// title : ウインドウタイトル
// widht, height : ウインドウサイズ
// resizable : サイズ変更を許すか
// ncolumns : カラム数
Shell shell = null;
if ( resizable ) {
shell = new Shell( display, SWT.TITLE|SWT.MIN|SWT.MAX|SWT.RESIZE);
// SWT.TITLE : タイトルバーあり
// SWT.MAX : 最大化ボタンあり
// SWT.MIN : 最小化ボタンあり
// SWT.RESIZE : サイズ変更可能
}
else {
shell = new Shell( display, SWT.TITLE );
}
shell.setText( title );
shell.setSize( width, height );
shell.setLayout( new GridLayout( /* カラム数 */ ncolumns, /* グリッドを均等サイズにするか */ false ) );
return shell;
}
public static void main(String[] args) {
Display display = new Display();
Shell shell = createShell( display, "HelloWorld!", 200, 100, true, 2 );
Text text1 = new Text( shell, SWT.SINGLE | SWT.BORDER );
Button button1 = new Button(shell, SWT.BORDER);
button1.setText("処理開始");
shell.open();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) {
display.sleep ();
}
}
display.dispose ();
}
}
上記のプログラムの動作画面例

SWT の Shell オブジェクト
以下,createShell() 関数を使って,SWT の Shell オブジェクトの機能を説明する.
- ウインドウタイトルの設定
以下のように,SWT の Shell オブジェクトには,ウインドウタイトルを設定できる.
ウインドウタイトルには,setText() 関数を使う.
- ウインドウサイズの設定
以下のように,SWT の Shell オブジェクトでは,ウインドウサイズを設定できる. ウインドウサイズの設定には,setSize() 関数を使う.
- リサイズを許すかどうか
以下のように,SWT の Shell オブジェクトでは,最大化ボタン,最小化ボタン,サイズ変更可能を設定できる.
上のようにするためには,Shell オブジェクトのコンストラクタに,次の3つを含めます.
- SWT.MAX : 最大化ボタンあり
- SWT.MIN : 最小化ボタンあり
- SWT.RESIZE : サイズ変更可能
次のように,最大化ボタン,最小化ボタンを含めたくないし,サイズ変更可能にしたくない場合もあるでしょう.
そのときは,Shell オブジェクトのコンストラクタに, SWT.MAX,SWT.MIN,SWT.RESIZE を含めないということになる.
- フォーム部品などの配置
下記のようなフォーム部品の配置については,Shell オブジェクトを使う.
プログラムは,次のようになる.