| Appletの[開けウインドウ]ボタンをクリックすれば,Frameウインドウが開く。 Frameウインドウについては,<ファイル|使用法>メニューを参照して下さい。 |
import java.applet.*;
import java.awt.*;
public class ja207 extends Applet
{
Button btn = new Button("開けウインドウ");
Label lbl = new Label("ここをクリックすれば別ウインドウが開きます");
public void init(){
setLayout(null); //レイアウトマネージャーを使わない
add(lbl);
lbl.reshape(10,10,230,15); //ラベルを指定位置に配置
add(btn);
btn.reshape(10,30,90,20); //ボタンを指定位置に配置
}
public boolean action(Event e,Object o){
if(e.target == btn){ //[開く]ボタンをクリック
ja207Frame FW = new ja207Frame();//ja207Frame()コンストラクタを呼び出し,フレームウインドウを生成する
FW.resize(600,300); //フレームウインドウのサイズを設定
FW.show(); //フレームウインドウを開く
return true;
}
return false;
}
}
class ja207Frame extends Frame
{
Font f = new Font("TimesRoman",Font.PLAIN,16);
int n = 16; //フォントサイズを格納する変数
Label LA; //ラベル
TextArea TA; //テキストエリア
Button BT; //ボタン
MenuBar MB; //メニューバー
Menu MNU1,MNU2,MNU3,MNU4; //メニュー
String s1 = "[情報]メニューから項目を選択すれば,その説明文を表示する。\n" +
"[フォント]メニューからフォントサイズを選択し,さらにフォントスタイルを選択 \n" +
"すれば,TextAreaのフォントを変更できる。\n" +
"[その他]メニューから<バージョン情報>を選択すれば,DialogBox \n" +
"が開きバージョン情報(?)を知らせます。 \n" +
"<ファイル|終了>メニュー,又は下部の[閉じる]ボタンでウインドウを閉じます。";
String s2 = "・Appletとは独立した別個のウインドウを開く。\n" +
"・Frameウインドウにはメニューを作成できる。\n" +
"・Frameウインドウにも,Applet同様にコンポーネントを自由に配置し利用できる。\n" +
"・FrameウインドウからDialogBoxを開けれる。";
String s3 = "1)extends Frameされたユーザー定義クラスを作る。\n" +
" ・コンストラクタの定義 \n" +
" ・Frameウインドウを終了するイベント処理(dispose()を使う)\n" +
"2)Appletクラスで \n" +
" ・1)のFrameサブクラスのインスタンスを生成する。 \n" +
" ・show()メソッドでFrameウインドウを開く。";
String s4 = "1)MenuBarクラスのインスタンスを作る。\n" +
"2)setMenuBar()でMenuBarをFrameウインドウにセットする。\n" +
"3)Menuクラスのインスタンスを作る.\n" +
"4)MenuBarにMenuをadd(登録)する。\n" +
"5)MenuItemをMenuにadd(登録)する。\n" +
"6)action()で,各MenuItemごとの実行したい処理を記述。";
public ja207Frame(){ //コンストラクタの定義
setTitle("Frame使用例"); //Frameウインドウのタイトルを設定
setBackground(Color.yellow); //Frameウインドウに背景色を黄色に
LA = new Label("ここに情報を表示します",Label.CENTER);
LA.setFont(f);
LA.setForeground(Color.blue); //ラベルの文字色を青に
add("North",LA); //ラベルを配置(FrameのデフォルトはBorderLayout)
TA = new TextArea(10,40); //テキストエリアを作成
TA.setFont(f);
TA.setEditable(false); //TextAreaを編集不可に設定
add("Center",TA);
BT = new Button("閉じる"); //ボタンの作成と配置
add("South",BT);
MB = new MenuBar(); //メニューバーを作成し,フレームウインドウにセットする
setMenuBar(MB);
MNU1 = new Menu("ファイル",true); //<ファイル>メニューを作成
MNU1.add("使用法"); //<ファイル>メニューに<使用法>項目を追加
MNU1.addSeparator(); //メニューに区切り線を入れる
MNU1.add("終了"); //<ファイル>メニューに<終了>項目を追加
MB.add(MNU1); //<ファイル>メニューをメニューバーに配置
MNU2 = new Menu("情報"); //<情報>メニューと,その下の各メニュー項目の作成
MNU2.add("Frameの概要");
MNU2.add("Frameの作成手順");
MNU2.add("メニューの作成法");
MB.add(MNU2);
MNU3 = new Menu("フォント"); //<フォント>メニューと,その下の各メニュー項目を作成
Menu MNU3_sub1 = new Menu("フォントスタイル"); //<フォント>メニューの下にサブメニューを作成
MNU3_sub1.add("標準"); //以下,サブメニュー項目
MNU3_sub1.add("太字");
MNU3_sub1.add("斜体");
MNU3_sub1.add("太字斜体");
MNU3.add(MNU3_sub1);
MNU3.add("-"); //メニューに区切り線を入れる
Menu MNU3_sub2 = new Menu("フォントサイズ"); //<フォント>メニューの下にサブメニューを作成
MNU3_sub2.add("10ポイント");
MNU3_sub2.add("12ポイント");
MNU3_sub2.add("16ポイント");
MNU3_sub2.add("20ポイント");
MNU3.add(MNU3_sub2);
MB.add(MNU3); //<フォント>メニューをメニューバーに配置
MNU4 = new Menu("その他"); //<その他>メニューの作成
MNU4.add("バージョン情報");
MB.add(MNU4);
}
public boolean action(Event e,Object o){
if(e.target instanceof MenuItem){ //メニュー項目を選択した時の処理
if(o.equals("使用法")){ //Object o はメニュー項目のラベル文字列となる
LA.setText("このウインドウの簡易マニュアル");//ラベルの表示文字列の変更
TA.setText(s1); //TextAreaにs1文字列を表示
}
if(o.equals("終了"))dispose(); //Frameウインドウと閉じる
if(o.equals("Frameの概要")){
LA.setText("Frameの概要");
TA.setText(s2);
}
if(o.equals("Frameの作成手順")){
LA.setText("Frameウインドウの作成手順");
TA.setText(s3);
}
if(o.equals("メニューの作成法")){
LA.setText("メニューの作成法");
TA.setText(s4);
}
//以下で,TextAreaのフォントを変更する
if(o.equals("標準"))TA.setFont(new Font("TimesRoman",Font.PLAIN,n));
if(o.equals("太字"))TA.setFont(new Font("TimesRoman",Font.BOLD,n));
if(o.equals("斜体"))TA.setFont(new Font("TimesRoman",Font.ITALIC,n));
if(o.equals("太字斜体"))TA.setFont(new Font("TimesRoman",Font.BOLD+Font.ITALIC,n));
if(o.equals("10ポイント"))n = 10;
if(o.equals("12ポイント"))n = 12;
if(o.equals("16ポイント"))n = 16;
if(o.equals("20ポイント"))n = 20;
if(o.equals("バージョン情報")){ //<その他|バージョン情報>メニュー
ja207Dialog DB = new ja207Dialog(this,"バージョン情報");//Dialogボックスを作成
DB.resize(200,180); //DialogBoxのサイズ設定
DB.show(); //DialogBoxを開く
}
return true;
}
if(e.target == BT){ //[閉じる]ボタンのクリック時
dispose(); //Frameウインドウと閉じる
return true;
}
return false;
}
public boolean handleEvent(Event e){
if(e.id == Event.WINDOW_DESTROY){ //Java.awt.Eventクラスの定数
dispose(); //右上の[×]ボタンでウインドウを閉じる(Frameが使うシステムリソースを廃棄)
}
return super.handleEvent(e);
}
}
class ja207Dialog extends Dialog
{
Label LA1 = new Label("作成者: Kodayan",Label.CENTER);
Label LA2 = new Label("作成日: 1998/7/8",Label.CENTER);
Label LA3 = new Label("バージョン番号:123456.7890x",Label.CENTER);
Button BT = new Button("閉じる");
ja207Dialog(Frame fw,String title){ //Dialogのコンストラクタ
super(fw,title,true); //モーダルDialogを作成
setLayout(null); //デフォルトのレイアウトマネージャーを使わないで,ラベルとボタンを配置
add(LA1);
LA1.reshape(10,60,180,15);
add(LA2);
LA2.reshape(10,80,180,15);
add(LA3);
LA3.reshape(10,100,180,20);
add(BT);
BT.reshape(140,150,40,20);
}
public boolean handleEvent(Event e){
if(e.id == Event.WINDOW_DESTROY)dispose(); //DialogBoxの右上[閉じる]ボタン
return super.handleEvent(e);
}
public boolean action(Event e,Object o){
if(e.target == BT)dispose(); //[閉じる]ボタンでDialogBoxを閉じる
return false;
}
}
末尾