Microsoft Word - Java3.DOC

Similar documents
(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

Prog1_12th

PowerPoint Presentation

Prog2_11th

ガイダンス

Prog1_12th

Java言語 第1回

ガイダンス

Java 2 - Lesson01

Microsoft PowerPoint - OOP.pptx

< F2D E E6A7464>

Microsoft PowerPoint ppt

Microsoft PowerPoint - prog11.ppt

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

Java言語 第1回

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

Microsoft Word - Java3.DOC

アプレットⅣ

ÿþ˜u#u·0¹0Æ0à0

ガイダンス

Java言語 第1回

GUIプログラムⅣ

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog11.ppt

< F2D B825082CC96E291E82E6A7464>

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

< F2D B838A835882CC8CF68EAE2E6A7464>

Java言語 第1回

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

Microsoft PowerPoint - prog12.ppt

< F2D834F838C A815B A CC>

<4D F736F F F696E74202D AC C8899E D834F E >

< F2D82B682E182F182AF82F12E6A7464>

< F2D82518CC282CC D2E6A7464>

Microsoft PowerPoint - OOP.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog10.ppt

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

Microsoft PowerPoint - prog10.ppt

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

Microsoft Word - Java4.DOC

< F2D F B834E2E6A7464>

Microsoft PowerPoint - swing3.ppt

< F2D825282CC947B909482CC A815B83682E6A>

< F2D89BA8EE882C E6A7464>

Microsoft PowerPoint prog1_doc2x.pptx

問1

JAVA入門

GUIプログラムⅡ

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

次の演習課題(1),(2)のプログラムを完成させよ

< F2D92DE82E8914B82CC977088D32E6A7464>

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

< F2D8EA CE909482CC92EA82852E6A7464>

ガイダンス

text_12.dvi

< F2D A838B838D96402E6A7464>

PowerPoint プレゼンテーション

ガイダンス

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

アジェンダ 1 グラフィカルなインタフェース GUI(Graphical User Interface) の基礎 2 Swing を利用する Swing の基礎知識 2

I 4 p.2 4 GUI java.awt.event.* import /* 1 */ import mouseclicked MouseListener implement /* 2 */ init addmouselistener(this) this /* 3 */ this mousec

< F2D A839382CC906A2E6A7464>

PowerPoint Presentation

GUIプログラムⅤ

Microsoft PowerPoint prog1_doc2.pptx

Java 2 - Lesson01

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

Java演習(2) -- 簡単なプログラム --

Microsoft PowerPoint ppt

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

2

GUI プログラミング第 4 Graph ~ 手書認識と関数グラフ描画 ~ マウスで数式を書いて認識し 関数グラフを描画する < 手書認識とグラフ描画のステップ> ステップ 1_1 フレームの作成 ステップ 1_2 マウスで自由に線を書く ステップ 2-1 手書認識認識結果を標準出力する ステップ

プレポスト【問題】

第1章 ビジュアルプログラミング入門

text_13.dvi

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

Java 2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q 2.

2008 e-learning T050050

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

Microsoft PowerPoint - swing2.ppt

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

r4.dvi


Javaの作成の前に

PowerPoint プレゼンテーション

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

JAVA入門

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

第1章 ビジュアルプログラミング入門

ソフトウェア開発方法論2

Transcription:

Java 入門 ( 5) 科名 T u t o r i a l g r o u p 氏 名 1 Abstract Window Toolkit(AWT) Abstract Window Toolkit(AWT) は Java の GUI(Graphical User Interface) 構築の最も基本となるライブラリパッケージである Abstract Window Toolkit(AWT) の特徴は 次のとおりである (1) AWT では アプレット (applet) とアプリケーションの GUI を作成することができる (2) 一般的なプログラムに必要な最小限の GUI 部品であるため 基本的な GUI 部品は一通り揃っているが 高度な GUI 部品は実装されていない (3) 直接 OS の API を利用してコンポーネントの表示を行うため look&feel は OS に依存する "pure java" ではない (4) OS 固有のネイティブコードを利用するため システムリソースを大量に使用する このため "heavy weight component" と呼ばれる (5) Swing と比較して OS の API を利用するため動作速度が速い また Java2 からは AWT とは別に Swing が標準で搭載されている Swing は OS 固有のネイティブコードを全く利用しないため 完全な Java の look&feel を実現できる しかし その反面 AWT よりも動作速度がかなり遅い "pure java" である 2005.1 例題 29 [ ファイル ] P287applet.java テキスト P287~288 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P287applet" とすること 解説 アプレット (applet) とは Web ブラウザに GUI を提供する目的で作成されるクラスファイルである 通常 アプレットは HTML の <APPLET> タグによって Web ページに埋め込まれる アプレットを作成する場合は "java.applet.applet" クラスを継承して新たにクラス定義する また "java.applet.applet" クラスは "java.awt.panel" を継承して作成されており コンテナとしての機能を備えている したがって アプレット内に AWT コンポーネントを組み込むことが可能である Java のライブラリパッケージの構成は パスが "java" "javax" 及び "org.omg で始まるものの三つに分類される "java" で始まるものは 基本 API パッケージ で プログラミングする上で最も基本的な機能がまとめられている この分野のライブラリパッケージには次のようなものがある (1) java.applet アプレットの機能を提供する

(2) java.awt Abstract Window Toolkit の機能を提供する (3) java.lang Java 言語の最も基本的な機能を提供する "javax" で始まるものは Swing 関係の機能がまとめられている この分野のライブラリパッケージには次のようなものがある (1) javax.accessibility Swing コンポーネントへのアクセス手段を提供する (2) javax.rmi CORBA 準拠のオブジェクト間通信プロトコルを提供する (3) javax.swing Swing のためのパッケージを提供する "org.omg" で始まるものは CORBA のためのパッケージである これらのライブラリパッケージは import 文によって指定する 構文 - import impoet package-name.class-name; package-name class-name クラスの検索先を指定する class-name インポートするクラス名を指定する 特定のパッケージの複数のクラスを指定する場合は "*" を指定する "java.applet.applet" クラスには アプレットの実行と終了に関する次のメソッドがあらかじめ実装されている (1) void init()... アプレットがロードされた時に 一度だけ呼び出される アプレットの初期化のために処理を用意する場合に用いられる アプリケーションの main() メソッドに相当し コンストラクタの役割もする アプレットでは コンストラクタの実装は可能だが一般的には実装しない (2) void start() init() メソッドの実行後に呼び出される アプレットの開始のための処理に用いられる (3) void stop() アプレット終了時に呼び出される (4) void destroy() void stop() メソッドの後のアプレット破棄の際に呼び出される なお アプリケーションにおける JVM の終了処理 (System.exit()) は不要である また "java.applet.applet" クラスは "java.awt.panel" クラスを継承しているので そのスーパークラスである "java.awt.container" クラスや "java.awt.component" クラスに実装されているメソッドなども使用することができる ( テキスト P281) 構文 - APPLET タグ <APPLET CODE=class-file WIDTH=width HEIGHT=height ALIGN=align> </APPLET /APPLET> class-file ブラウザから呼び出すクラスファイルを指定する width アプレットの横幅を指定する height アプレットの縦幅を指定する align アプレットの整列位置 (RIGHT LEFT CENTER) を指定する 解説 : ブラウザからアプレットを呼び出す

手順 1 コードウィンドウ [ 新規 1] に テキスト P287~288 <APPLET> タグと applet クラスのプログラムをコーディングする 2 メニューバーから [ ファイル (F)] [ 名前を付けて保存 (A)...] と操作し [ ファイル名を付けて保存 ] ダイアログの [ ファイル名 (N):] 欄に "P287applet.java" と入力し 保存 (S) 3 Ctrl + F8 ボタンを click する F8 を押下して コンパイルのみを行なう コンパイルエラーが無く "P287applet.class" が作成されることを確認する 4 [ コマンド (C)] バーから "appletviewer P287applet.java" と入力し する 5 [Command Prompt] ウィンドウが起動し アプレットが表示される 6 動作を確認後 [Command Prompt] ウィンドウを閉じる 考察 を click 例題 30 [ ファイル ] P289applet.java テキスト P289 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P289applet" とすること また 次のコーディングを変更しなさい (1) setbackground(color.white); setbackground(color.yellow); (2) setforeground(color.blue); start() メソッドに追加 解説 AWT コンポーネントは フォアグラウンドとバックグラウンドと言う二つの色を組み合わせて表示される それぞれ setforeground() メソッドと setbackground() メソッドによって 表示色の値を設定することで変更できる この時 表示色の値として "java.awt.color" クラスのインスタンスを使用することができる あらかじめ用意されているインスタンスのフィールドには 次のようなものがある black, blue, cyan, darkgray, gray, green, lightgray, magenta, orange, pink, red, white, yellow

考察 例題 31 - getparameter() メソッド [ ファイル ] P293applet.java テキスト P293 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P293applet" とすること getparameter() メソッドについては テキスト P282 を参考にすること 考察 例題 32 - Java console [ ファイル ] P294applet.java テキスト P294 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P294applet" とすること 考察 例題 33 - TextField [ ファイル ] P296applet.java [ プログラム ] // Text フィールドを扱うプログラム (P296) import java.lang.*; import java.applet.applet; import java.awt.*; /*<APPLET

CODE = P296applet.class WIDTH = 200 HEIGHT = 200> </APPLET>*/ public class P296applet extends Applet { public TextField text1; // データメンバ public void init(){ text1 = new TextField(20); // オブジェクトの生成 text1.settext("hello from Java!"); // TextField に文字列を格納 add(text1); // コンテナへコントロールの追加 考察 setbackground(color.yellow); // 追加コーディング 例題 34 - Button [ ファイル ] P297applet.java, P297applet1.java [ プログラム 1] "P296applet.java" からコピーして良い // Button コントロールを扱うプログラム (P297) import java.lang.*; import java.applet.applet; import java.awt.*; /*<APPLET CODE = P297applet.class WIDTH = 200 HEIGHT = 200> </APPLET>*/ public class P297applet extends Applet { public TextField text1; // データメンバ Button button1; public void init(){ text1 = new TextField(20); // オブジェクトの生成 text1.settext("hello from Java!"); // TextField に文字列を格納 add(text1); // コンテナへコントロールの追加

考察 button1 = new Button("Click Here!");// オブジェクトの生成 add(button1); // コンテナへコントロールの追加 setbackground(color.cyan); // 追加コーディング Button コントロールを Click して 動作を確認しなさい [ プログラム 2] "P297applet.java" からコピーして良い // Button コントロールを扱うプログラム (P297) import java.lang.*; import java.applet.applet; import java.awt.*; /*<APPLET CODE = P297applet1.class WIDTH = 200 HEIGHT = 200> </APPLET>*/ public class P297applet1 extends Applet implements ActionListener { public TextField text1; // データメンバ Button button1; public void init(){ text1 = new TextField(20); // オブジェクトの生成 text1.settext("hello from Java!"); // TextField に文字列を格納 add(text1); // コンテナへコントロールの追加 button1 = new Button("Click Here!");// オブジェクトの生成 button1.addactionlistener(this); add(button1); // コンテナへコントロールの追加 setbackground(color.cyan); // 追加コーディング // 追加処理コーディング public void actionperformed(actionevent e){ setbackground(color.green);

考察 イベント処理 (event processing) イベントとは GUI における各種の操作や処理の要求であり メッセージである イベント処理とは このイベントが発生した場合 あらかじめ組み込まれたイベントハンドラを呼び出してそのイベントに対処する処理を行ない その後実行中のプログラムに制御を返すことである Key-in GUI では 常にイベントが発生したかどうかを Click Menu 確認するイベントループが実行されている ユーザが GUI を操作すると システムが操作に応じたイベントを発生させ このイベントをイベントループ内で検出させる イベントループ次に 発生したイベントに応じて 処理に必要なサブルーチンを呼び出す仕組みになっている これらのプログラムによる一連の button_click() menu_select() 操作をイベントシステムと言う key_type() Java では 代理代理イベントモデル (delegate event model) と呼ばれるイベントシステムを実装する (Java 1.1 以降 ) 代理イベントモデルでは コンポーネント本体とイベント処理を分離し コンポーネント本体にイベント処理の機能を実装しない すなわち イベントはイベント処理専用のイベントイベントリスナー (event listener) と言うクラスによって処理される また イベントリスナーはイベントの種類ごとに多数用意されており 各イベントリスナー内にはそのイベントで使用するイベントハンドラのメソッドが用意されている Click Java におけるイベントは ソースにおける状態変更を表すオブジェクトであり ソースにより生成される したがってソースには次のような機能が必要となる applet クラス (1) イベントの生成 (2) リスナーが特定のタイプのイベントに関するアクションリスナー通知を登録あるいは登録解除するメソッドの void actionperformed(xx){ ボタンクリック処理提供 (3) 登録されているすべてのリスナーへのイベントメッセージの送信

構文 - イベントリスナー登録メソッド ( ソース :java.awt.button) void addactionlistener(actionlistener al) al ActionListener と呼ばれるイベントリスナーオブジェクトを指定する 解説 :Button クラスに ActionListener を追加する これにより Button クラスは Button が Click された時にイベントメッセージを受け取ることができる 構文 - イベントリスナー登録解除メソッド ( ソース :java.awt.button) void removeactionlistener(actionlistener al) al ActionListener と呼ばれるイベントリスナーオブジェクトを指定する 解説 :Button クラスから ActionListener を削除し Button クラスからイベントメッセージを受け取らないようにする 次に リスナーに必要となる機能を示す (1) 特定のイベントメッセージを受け取ることを登録 (2) 前述 (1) で登録したイベントメッセージを受け取るインタフェースの実装 (3) 不要となった前述 (1) の登録解除 構文 - インタフェース実装メソッド (ActionListener インタフェース ) void actionperformed(actionevent ae); ae アクションイベントオブジェクトを指定する 解説 : イベントメッセージを受け取るアクションリスナーを実装する なお ActionListener インタフェースには このメソッドだけが定義されている 表イベントクラスの種類とソース ActionEvent Menu List Button 操作 AdjustmentEvent Scroll 操作 ComponentEvent Component の状態変化 ContainerEvent Component の追加 削除 FocusEvent Component Focus の変化 ItemEvent CheckBox List 選択の変化 KeyEvent Key 操作 MouseEvent Mouse 操作 TextEvent TextArea TextField の変化 WindowEvent Window 状態の変化 例題 35 P301applet.java テキスト P301 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P301applet" とすること なお 実習については次のとおりとする

(1) P301 のプログラムを入力後 Ctrl Ctrl + F8.. F8 を押下して コンパイルのみを行なう (2) [CPad: コンパイル終了 ] を確認後 actionperformed() メソッドをコメントアウトする.. (3) Ctrl + F8 を押下して コンパイルのみを行い メッセージを確認する (4) 前述 (2) でコメントアウトした actionperformed() メソッドを元に戻し実行しなさい 構文 - Button クラスコンストラクタ Button() ラベル無しの Button オブジェクトを作成する Button(String label) 指定のラベルを持つ Button オブジェクトを作成する label Button オブジェクトに表示するラベル ( 文字列 ) を指定する 解説 : 指定のラベルを持つ Button オブジェクトを作成した場合 Button オブジェクトの Caption にその文字列が格納され 表示テキストとなる また デフォルトでは この Caption 値がアクションイベントに関連付けられたコマンド文字列となる 構文 - getsource() メソッド Object getsource() 解説 : イベントを生成した Object クラスのオブジェクトを返す 考察 前述 (3) の意味を考察しなさい 例題 36 P303applet.java テキスト P302~P303 applet クラスと a クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P303applet" と クラス名 "a" はクラス名 "P303a" とすること 考察 例題 37 P304applet.java テキスト P304 applet クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P304applet" とすること

構文 - getactioncommand() メソッド String getactioncommand() 解説 :ActionListener が Button オブジェクトで生成されたアクションイベントに関連付けられたコマンド文字列を返す 考察 実験 1 P301applet1.java "P301applet.java" のプログラムを 次のように変更して実行しなさい ただし クラス名は "P301applet1" に変更すること button1 = new Button("Click Here!"); button1 = new Button(); 考察 Button オブジェクトを デフォルトコンストラクタで初期化した場合の動作を考察しなさい 実験 2 P304applet1.java "P304applet.java" のプログラムを 次のように変更して実行しなさい ただし クラス名は "P304applet1" に変更すること button1 = new Button("Click Here!"); button1 = new Button(); 考察 Button オブジェクトを デフォルトコンストラクタで初期化した場合の動作を考察しなさい

例題 38 P305applet.java テキスト P305 First クラスのプログラムを作成しなさい ただし クラス名 "First" はクラス名 "P305First" とすること 考察 例題 39 P307applet.java テキスト P306~P307 newbutton クラスと applet クラスのプログラムを作成しなさい ただし クラス名 "newbutton" はクラス名 "P306newButton" と クラス名 "applet" はクラス名 "P307applet" とすること 解説 AWTEvent 抽象クラスは EventObject クラスを拡張したもので "java.awt" パッケージに含まれている したがって AWTEvent.ACTION_EVENT_MASK" は AWTEvent 抽象クラス内に定義されている定数である 考察 アダプタクラス (adapter class) Java におけるインタフェースとは 定数と抽象メソッドのみを宣言したクラスであるため implements キーワードによってインタフェースを実装したクラスでは そのインタフェース中に定義されているすべてのメソッド ( イベントハンドラ ) の定義をしなければならない しかし イベント処理ではインタフェース中のすべてのメソッド ( イベントハンドラ ) が必要であるとは限らないが そのインタフェースで定義されているすべてのメソッド ( イベントハンドラ ) の定義を求められ コーディングが煩雑になる このため Java ではあらかじめリスナークラスを implements キーワードによってクラスに実装し そのリスナークラス中に定義されているすべてのメソッド ( イベントハンドラ ) を定義したクラスを用意している このクラスをアダプタクラスと言う

このため アダプタクラスは通常のクラスであることから extends キーワードによって継承す るため 多重継承多重継承は許可されない 表アダプタクラスとリスナークラス アダプタクラスかリスナークラスリスナークラスか? ComponentAdapter ComponentListener アダプタクラスを使用するとリスナー ContainerAdapter ContainerListener クラスに比べてコーディングは低減され FocusAdapter FocusListener るが 常に別のクラスとして用意しなけれ KeyAdapter KeyListener ばならない MouseAdapter MouseListener したがって いつもアダプタクラスを使 MouseMotionAdapter MouseMotionListener うことが正しい選択とは言えない WindowAdapter WindowListener 例題 40 P308applet.java テキスト P307~P308 applet クラスと ma クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P308applet" と クラス名 "ma" はクラス名 "P308ma" とすること 考察 実験 3 P308applet1.java [ プログラム ] import java.lang.*; import java.applet.applet; import java.awt.*; import java.awt.event.*; /*<APPLET CODE = P308applet1.class WIDTH = 200 HEIGHT = 200> </APPLET>*/ public class P308applet1 extends Applet implements MouseListener { public String s = "Hello from Java!"; public void init(){ addmouselistener(this); // イベントリスナーの登録

public void paint(graphics g){ g.drawstring(s, 60, 100); public void mouseclicked(mouseevent me){ s = "Hello to Java!"; repaint(); public void mousepressed(mouseevent me){ // 何も実装しない 1 2 3 public void mousereleased(mouseevent me){ // 何も実装しない public void mouseentered(mouseevent me){ // 何も実装しない public void mouseexited(mouseevent me){ // 何も実装しない 解説 MouseListener インタフェース中に宣言されている抽象メソッド 1 今回 アプレットの動作の上で必要となるメソッドの実装 2 今回 アプレットの動作の上で不要なメソッドの定義 3 3ブロック全体をコメントアウトして コンパイルしなさい また コンパイル結果について考察しなさい 考察 例題 40 のコーディングと比較し 考察しなさい 例題 41 P310applet.java テキスト P309~P310 applet クラスのプログラムを作成しなさい ただし クラス名 "applet"

はクラス名 "P310applet" とすること 解説 匿名内部アダプタクラスを使用すると アダプタクラスのサブクラスとして別に作成する必要が無くなる 考察 ウィンドウ型アプリケーション (Frame を使ったったアプリケーションクラス ) Java AWT を利用するアプリケーションは Frame クラスを継承して作成する 例題 42 P313app.java テキスト P312~P313 app クラスと AppFrame クラスのプログラムを作成しなさい ただし クラス名 "app" はクラス名 "P313app" と クラス名 "AppFrame" はクラス名 "P313AppFrame" とする こと [ プログラム ] import java.awt.*; // Frame クラスのサブクラスを定義 class P313AppFrame extends Frame { public void paint(graphics g){ // paint() メソッドのオーバーライド g.drawstring("hello from Java!", 60, 100); public class P313app { public static void main(string args[]){ P313AppFrame f = new P313AppFrame(); // setsize() メソッドによるコンポーネントサイズの変更 f.setsize(200, 200); // show() メソッドによるコンポーネントの表示 f.show(); 解説 AWT の Frame クラスアプリケーションは GUI の表示や操作に OS の API を使用しているため 表示する Look&Feel は OS に依存する このため ウィンドウの最大化や最小化の機能は アプリケーションで実装しなくても機能す る しかし アプリケーションの終了は アプリケーションに実装しなければならない

考察 例題 43 P316app.java テキスト P315~P316 app クラスと AppFrame クラスのプログラムを作成しなさい ただし クラス名 "app" はクラス名 "P316app" と クラス名 "AppFrame" はクラス名 "P313AppFrame" とすること 考察 例題 44 Samp44.java, Samp44a.java [ プログラム 1] import java.lang.*; import java.awt.*; import java.awt.event.*; public class Samp44 { public static void main(string args[]){ // 直接 Frame クラスのオブジェクトを作成する Frame mf = new Frame(); mf.addwindowlistener(new WindowAdapter(){ public void windowclosing(windowevent e){ System.exit(0); ); mf.setsize(300,200); mf.show(); [ プログラム 2] import java.lang.*; import java.awt.*;

import java.awt.event.*; public class Samp44a { public static void main(string args[]){ // 直接 Frame クラスのオブジェクトを作成する Frame mf = new Frame(); TextField tf = new TextField("Hello from Java!"); Button bt = new Button("Click Here!"); mf.addwindowlistener(new WindowAdapter(){ public void windowclosing(windowevent e){ System.exit(0); ); mf.add(bt); 追加 mf.add(tf); mf.setsize(300,200); mf.show(); [ プログラム 1] に " 追加 " 部分を 追加コーディングしたものである 考察 例題 43 のプログラムと比較し なぜ Frame クラスを継承継承しなければならないのかを考 察しなさい 追加 例題 45 P317applet.java テキスト P316~P317 applet クラスと AppFrame クラスのプログラムを作成しなさい ただし クラス名 "applet" はクラス名 "P317applet" と クラス名 "AppFrame" はクラス名 "P318AppFrame" とすること 考察