タイトル

  A W T

          Javaリソースウィザード編

タイトル

アプレットに入力Form、ボタン、コンボボックス、リスト
スクロールバーなどのコントロールをを取り付けることができます。
まず、枠組みの作り方を解説します。


作成

●ワークスペースの作成

いつものように新しいアプレットを作っておきます。

●リソースの作成

「ファイル」−「新規作成」−「リソーステンプレート」を選択します。
「挿入」−「リソース」−「ダイアログ」−「新規作成」ボタンを押します。
ここで、ダイアログにコントロールを配置していきます。

ダイアログの配置の様子

●コントロールの配置

ここで、コントロールのサイズの変更やプロパティを設定します。
今回は何も変更しないことにしました。
できたものは名前を付けて保存します。

●Javaへの変換

「ツール」−「Javaリソースウィザード」で変換するファイル名を指定します。
「次へ」を押すと作成されるクラス名の確認のダイアログがでます。
ここで、名前の変更ができます。
「完了」をおすと次のようにファイルが作成されます。

作成されたファイル

●プロジェクトファイルへ追加

できたファイルは、プロジェクトファイルに関連づけられていなく
独立したファイルになっています。
そこで、「プロジェクト」−「プロジェクトに追加」−「ファイル」を
選択し、先ほどの2つのファイルを追加します。

これで、ワークスペースのWindowをみると確かにクラスが3つになって
いることがわかります。

●Javaファイルの手直し

これで、ワークスペースには3つのファイルがあるのですが
メインのnamae.javaファイルからそれら2つのファイルは関連づけられていません。
そこで次のように手直しします。(修正するメソッドなどを抜粋)


import java.applet.*;
import java.awt.*;
import IDD_DIALOG1;
public class namae extends Applet
{
	IDD_DIALOG1 dialog;

	public void init()
	{
		dialog=new IDD_DIALOG1(this);
		dialog.CreateControls();

	}

ここで注意するのは、initメソッドのresize(320,240)を消すことです。
これで、コンパイル−実行すると次のようになります。

初期のフォーム

これをみるとずいぶん小さくなっています。
これは、コントロールのサイズをピクセル単位で管理しているのではなく
独自も単位で管理しているためです。そのため、

ということが起こるので注意が必要です。
また、作成されるclassファイルは3つになります。
これは、1つのクラスで1つのファイルを作るためです。


修正

●フォントの変更

このままではあまりにもフォントが小さいので修正します。
「ワークスペース」をみてみると3つのクラスができています。
ここちらでは、「DialogLayout」「IDD_DIALOG1」「namae」の3つです。
このうち「DialogLayout」はダイアログのレイアウトに関するで
修正をするようなものではありません。

フォントの変更は「IDD_DIALOG1」のCreateControls()メソッドで行います。
このメソッド内には次のような構文があります。


if (OldFnt != null)
{
	Font NewFnt = new Font(OldFnt.getName(), OldFnt.getStyle(), 9);
	m_Parent.setFont(NewFnt);
}

この「9」がフォントサイズです。これを16に変更すると次のようになります。

フォントを16に変更した場合

●イベント処理

では、テキストフィールドに何か文字を入力してボタンを押すと
staticエリアに文字が表示されるようなプログラムを作ってみましょう。

まず、ボタン操作に対するイベントハンドラが必要です。


public boolean action(Event evt,Object obj)
{
	if (evt.target==dialog.IDC_BUTTON1){
		String val=dialog.IDC_EDIT1.getText();
		dialog.IDC_STATIC1.setText(val);
		return true;
	}
	return false;
}

「マウスかクリックされた」などのイベントが起きると
action メソッドが呼ばれます。
actionメソッドでは、いったい何のイベントであるかということを判断する必要があります。
そこで、evt.target==dialog.IDC_BUTTON1でボタンが押されたと判断します。
次に、dialog.IDC_EDIT1.getText();でエディットに入力された文字を得ます。
dialog.IDC_STATIC1.setText(val);でラベルの文字を変更します。
これで完成です。

上上へ


戻るC++のPageに戻る