javaで未来を感じるSWT画面を速攻作るだけのクラス

投稿者:isc_blog

まずは、SWTライブラリを取得します。

SWT は以下のサイトからダウンロードできます。

Eclipse.org
http://www.eclipse.org/

そして Eclipse上で動作する前提で・・・

↑のようにビルド・パスを設定してください。

 

その後

以下をコピペして「SWTWindow.java」というファイル名にしてください。

[java]
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

public class SWTWindow {

// シェル
private Shell sShell = null;

// ボタン
private Button button = null;

// タイトル
private static final String title = "SWT Window";

/**
* ウィンドウオープン
* @param args
*/
public static void main(String[] args) {
// ディスプレイ設定
Display display = Display.getDefault();
// static なメソッドから呼ぶために自クラスをインスタンス化
SWTWindow thisClass = new SWTWindow();
// シェル作成
thisClass.createSShell();
// シェルオープン
thisClass.sShell.open();
// シェルが生存している間待つよ
while (!thisClass.sShell.isDisposed()) {
//
if (!display.readAndDispatch())
// ディスプレイスリープ
display.sleep();
}
display.dispose();
}

/**
* シェル作成
*/
private void createSShell() {
// シェルインスタンス生成
sShell = new Shell();
// レイアウト=グリッドレイアウト設定
GridLayout gridLayout = new GridLayout();
// グリッドデータインスタンス生成
GridData gridData = new GridData();
// シェルにタイトル設定
sShell.setText(title);
// シェルにレイアウト設定
sShell.setLayout(gridLayout);
// ボタンインスタンス生成
button = new Button(sShell, SWT.NONE);
// ボタンのキャプションを「Close」に設定
button.setText("Close");
// ボタンをグリッドデータに設定
button.setLayoutData(gridData);
// シェルの画面サイズを 500px×500px に設定
sShell.setSize(new Point(500, 500));
// ボタンにリスナー設定
button.addSelectionListener(new SelectionAdapter() {
// 選択された際のイベント
public void widgetSelected(SelectionEvent e) {
doExit();
}
});
// シェルにリスナー設定
sShell.addShellListener(new ShellAdapter() {
// 閉じられたときのイベント
public void shellClosed(ShellEvent e) {
}
});
}

// ウィンドウ閉じるメソッド
private boolean doExit() {
// メッセージボックス
MessageBox mb = new MessageBox(sShell, SWT.ICON_QUESTION | SWT.YES
| SWT.NO);
// メッセージボックスのタイトル
mb.setText("Closing OK?");
// メッセージボックスに表示されるメッセージ
mb.setMessage("閉じますよ。OKですかいな?");
// メッセージボックスオープン
int state = mb.open();
// メッセージボックスで「OK」以外押しても無反応
if (state != SWT.YES) {
return false;
}
// シェル閉じる
sShell.close();
// シェル開放(明示的にやる必要がある)
sShell.dispose();
// 処理終了
return true;
}
}
[/java]

で、実行すると未来を感じるウィンドウが表示されます。

表示されておしまいです。

2011年4月26日