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

Similar documents
Java 2 - Lesson01

アプレットⅣ

Chapter JDK KeyListener keypressed(keyevent e ) keyreleased(keyevent e ) keytyped(keyevent e ) MouseListener mouseclicked(mouseeven

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

Microsoft Word - Java3.DOC

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

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - prog11.ppt

PowerPoint Presentation

Microsoft PowerPoint prog1_doc2x.pptx

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

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

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


Microsoft PowerPoint prog1_doc2.pptx

Java言語 第1回

Microsoft PowerPoint - prog12.ppt

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt

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

2008 e-learning T050050

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

ガイダンス

ガイダンス

Java演習(9) -- クラスとメソッド --

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

Animals サンプル Step3 張り付けた動物の上をクリックすると それぞれの鳴き声で鳴く その鳴く間 一定時間 ( ここでは 1 秒間 ) 画像が別のものに変わる <アニメーションの基礎 : タイマーについて> アニメーションは アプリケーションが指定する間 一定間隔でどんどん画像をおきかえ

GUIプログラムⅣ

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - prog10.ppt

Microsoft PowerPoint - prog10.ppt

Animals サンプル Step 1 動物の種類を指定しておいて クリックした場所に画像を貼り付ける < レイアウトについて > 前回は ラベルやボタンの位置を座標で設定した Absolute Layout を選んだためである レイアウトは どのようにボタンなどのコンポーネントを配置するかを決定す

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

Java言語 第1回

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

< F2D E E6A7464>

< F2D B825082CC96E291E82E6A7464>

PowerPoint プレゼンテーション

問1

Chapter 20. [ ] ; [ ] = new [ ] ; Color colors [ ] = new Color[ 20 ]; // 20 Button operations [ ] = new Button[ 10 ]; // 10 colors[ 3 ] = new Color( 1

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

PowerPoint プレゼンテーション

Java 2 - Lesson01

ガイダンス


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 +=

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

Microsoft PowerPoint ppt

Microsoft PowerPoint - OOP.pptx

< F2D89BA8EE882C E6A7464>

PowerPoint プレゼンテーション

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

<4D F736F F F696E74202D AC C8899E D834F E >

Animals サンプル Step 2 張り付けた動物の上をクリックすると それぞれの鳴き声で鳴く < 例外について > エラーや 通常の処理の中では起こってはいけない事象のことを例外といい 例外が起こる可能性がある場合はその対応処理を記述しなければならない 一般に java.lang パッケージの

try catch Exception Java try catch try { } catch ( Exception e ) { } e 16-1 try catch 0 try { int x = 0; int y = 10 / x; } catch ( Exception e ) { Sys

PowerPoint Presentation

< F2D F B834E2E6A7464>

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

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

JAVA入門

I. (i) Java? (A). Foo_Bar (B). G day (C). 999 (D). Golgo13 (ii)? (A). Java public (B). Java (C). Java JavaScript (D). Java C Java C (iii)? (A). Java (

< F2D B838A835882CC8CF68EAE2E6A7464>

Prog2_11th


Javaプログラムの実行手順

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

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

Graphical User Interface 描画する

< F2D82518CC282CC D2E6A7464>

Microsoft Word - Android_DI講座_画面800×1280

< F2D834F838C A815B A CC>

< F2D82B682E182F182AF82F12E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

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

Prog1_12th

r3.dvi

Java言語 第1回

< F2D A839382CC906A2E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

text_12.dvi

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

Prog1_12th

Microsoft Word 年度情報コミュニケーション実験II(Ver0.9)c.docx

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

JAVA入門

< F2D8EA CE909482CC92EA82852E6A7464>

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

< F2D92DE82E8914B82CC977088D32E6A7464>

GUIプログラムⅤ

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

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

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

< F2D A838B838D96402E6A7464>

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

PowerPoint プレゼンテーション

2

プログラミング基礎I(再)

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Prog2_9th

Microsoft PowerPoint - swing3.ppt

Transcription:

独習 Java 第 3 版 14.1 代行イベントモデル 14.2 イベントクラス 14.3 イベントリスナ

14.1 代行イベントモデル (1/3) アプレットは GUI を提供する GUI ベースのプログラムはイベントドリブンであり コンソールアプリケーションはイベントドリブンでない イベントドリブンとは ユーザや他のプログラムが実行した操作 ( イベント ) に対応して処理を行なうプログラムの実行形式

代行イベントモデル (2/3) イベントドリブンインターフェイスを定義する方法は数種類あり イベントモデルにより特定のメカニズムが決まる 代行イベントモデルとは ユーザが操作を行った際に ソースからその操作を示すオブジェクトのイベントを生成し 一連のリスナ ( 監視者 ) に送信する標準メカニズム

イベント イベントとは ソースにおける状態変更を表すオブジェクト ユーザーが GUI 内の要素と対話 ( マウスのクリック等 ) を行った場合に生成される

ソース ソースとは イベントを生成するもの 以下の 3 つの責任を持つ リスナが特定のタイプのイベントに関する通知を登録 解除できるようにするメソッドの提供 イベントの生成 登録されている全てのリスナにイベントを送信することイベントは 単一のリスナに対するユニキャストでも 複数のリスナに対するマルチキャストでも構わない

イベントの登録 解除 リスナがイベントを登録および解除できるようにするためソースが実装するメソッドは以下のとおり addtypelistener() メソッド public void addtypelistener(typelistenerel) public void addtypelistener(typelistenerel) throws TooManyListenersException removetypelistener() メソッド public void removetypelistener(typelistenerel) el はイベントリスナ

メソッドの説明 1 つ目の構文は特定タイプのイベントリスナを複数登録 2 つ目の構文は特定タイプのイベントリスナを一つ登録 3 つ目の構文は特定タイプのイベント通知の登録を解除

リスナについて リスナには主に 3 つの責任がある 特定のイベントに関する通知を受け取ることを登録すること ( ソースの適切な登録メソッドを呼び出して行う ) そのタイプのイベントを受け取るインターフェイスを実装すること その通知を受け取る必要がなくなった場合には登録を解除すること ( 登録解除はソースの適切な解除メソッドを呼び出して行う )

代行イベントモデル (3/3) 下の図は代行イベントモデルを示す ソースは一連のリスナにイベントをマルチキャストしている リスナはそのタイプのイベントに関する通知を受けるインターフェイスを実装する イベント リスナ ソース

14.2 イベントクラス 各種タイプの AWT イベントを表す一連のクラスが用意されている EventObject コンストラクタ EventObject(Objectsrc) src はイベントを生成するオブジェクト このクラスには次の 2 つのメソッドがある getsource() メソッド tostring() メソッド Object getsource() String tostring()

AWTEvent クラス EventObject を拡張したもので java.awt パッケージに含まれている AWT イベントクラスは全てこのクラスのサブクラス AWTEvent コンストラクタ AWTEvent(Objectsource, int id) source: イベントを生成するオブジェクト id: イベントのタイプ getid() メソッド tostring() メソッド int getid() String tostring()

java.awt.event に含まれる主な イベントクラス イベント ActionEvent AdjustmentEvent ComponentEvent ContainerEvent FocusEvent InputEvent ItemEvent KeyEvent MouseEvent TextEvent WindowEvent 生成される条件 ボタンを押したとき リスト項目をダブルクリックしたとき メニュー項目を選択したとき スクロールバーを操作した時 コンポーネントが隠れた 移動した サイズ変更された 表示可能になった時 コンポーネントがコンテナに追加した またはコンテナから削除した時 コンポーネントがキーボードフォーカスを取得した または失った時 マウスイベントまたはキーイベントが発生したとき チェックボックスまたはリスト項目をクリックしたとき 押したとき 離したとき そのほか マウスをコンポーネントに入れた またはコンポーネントから出したとき キーボードから入力を受け取った時 マウスをドラックまたは移動した時 クリックした時 押した時 話した時 その他 マウスをコンポーネントに入れた またはコンポーネントから出した時 テキストエリアまたはテキストフィールドの値を変更した時 ウィンドウを活動化した時 閉じた時 非活動化した時 アイコン化解除した時 開いた時 終了した時

ComponentEvent クラス (1/2) AWTEvent を拡張したクラス いくつかのタイプのコンポーネントイベントの識別に使用する int 型定数が定義される ComponentEvent コンストラクタ Component Event(Componentsrc, inttype) src: イベントを生成したオブジェクトの参照 type: イベントのタイプ

ComponentEvent クラス (2/2) ComponentEvent クラスの主な定数 定数 COMPONENT_HIDDEN COMPONENT_MOVED COMPONENT_RESIZED COMPONENT_SHOWN 説明 getcomponent() メソッド コンポーネントが隠れた コンポーネントが移動した このイベントを生成したコンポーネントを返す 構文 Component getcomponent() コンポーネントのサイズが変更された コンポーネントが表示可能になった

InputEvent クラス ComponentEvent のサブクラスで コンポーネント入力イベントのスーパークラス KeyEvent MouseEvent をサブクラスに持つ Input に関する修飾子の情報を扱う場合に使用できる int 型整数が定義されている getmodifiers() メソッドはイベントの修飾子フラグを全て含む int 型の値を返す int getmodifiers()

MouseEvent クラス (1/3) InputEvent のサブクラス マウスイベントのタイプ識別に使用できる int 型定数が定義されている 定数 MOUSE_CLICKED MOUSE_DRAGGED MOUSE_ENTERED MOUSE_EXITED MOUSE_MOVED MOUSE_PRESSED MOUSE_RELEASED MOUSE_WHEEL 説明 マウスをクリックした マウスをドラッグした マウスがコンポーネントに入った マウスがコンポーネントから出た マウスを移動した マウスを押した マウスを放した マウスのホイールを回した

MouseEvent クラス (2/3) 主なコンストラクタ MouseEvent(Componentsrc, int type, long when, int modifiers, int x, int y, int clicks, boolean triggerspopup) src: 生成したコンポーネントの参照 type: イベントのタイプ modifiers: イベント発生時にどの修飾子が押されたか x,y: マウス座標 clicks: クリック回数 triggerpopup: ポップアップメニュー表示の可否

MouseEvent クラス (3/3) getx() メソッド gety() メソッド int getx() int gety() イベント発生時のマウス座標を返す getpoint() メソッド Point getpoint() ソースコンポーネントを基準としてマウスイベントの場所を表す Point オブジェクトを返す

Point クラス java.awtパッケージで定義されている publicなインスタンス変数のx,yがある translatepoint() メソッド void translatepoint(int x,int y) イベントの場所の変更 x,yはイベントの座標に追加される getclickcount() メソッド int getclickcount() イベント発生時のマウスクリック回数を返す

14.3 イベントリスナ java.util.eventlistener インターフェイスについて イベントを処理するインターフェイスを指定するもので 定数やメソッドを定義するものではない 全てのイベントリスナインターフェイスはこのインターフェイスを拡張しなくてはいけない インターフェイスは全て java.awt.event パッケージで宣言されている

AWT イベントクラスと リスナインターフェイス イベントクラス ActionEvent AdjustmentEvent CompornentEvent ContainerEvent FocusEvent ItemEvent KeyEvent MouseEvent MouseWheelEvent TextEvent WindowEvent リスナインターフェイス ActionListener AdjustmentListener CompornentListener ContainerListener FocusListener ItemListener KeyListener MouseListener,MouseMotionListener MouseWheelListener TextListener WindowListener

イベントの登録と解除 マウスイベントの登録および解除するには Component クラスのメソッドを用いる それぞれのイベント通知を登録 ( 通知可にする ) void addmouselistener(mouselistenerml) void addmousemotionlistener(mousemotionlistenermml) それぞれのイベント通知登録を解除 void removemouselistener(mouselistenerml) void removemousemotionlistener(mousemotionlistener mml) ml はマウスリスナ mml はマウスモーションリスナ

MouseListener インターフェイス マウスイベントを受けるメソッドを定義する void mouseclicked(mouseeventme) void mouseentered(mouseeventme) void mouseexited(mouseeventme) void mousepressed(mouseeventme) void mousereleased(mouseeventme)

MouseMotionListener インターフェイス 次のようなマウスイベントを受け取る 2 つのメソッドを定義している mousedragged() メソッド void mousedragged(mouseeventme) mousemoved() メソッド void mousemoved(mouseeventme) me はソースで生成された MouseEvent オブジェクト 登録されている全てのリスナの適切なメソッドが呼び出され 引数としてイベントが渡される

例 import java.applet.*; import java.awt.*; import java.awt.event.*; /* <applet code="mousemotionevents" width=300 height=300> </applet> */ public class MouseMotionEvents extends Applet implements MouseListener, MouseMotionListener { Point p; public void init() { addmouselistener(this); addmousemotionlistener(this); } public void mouseclicked(mouseevent me) { } public void mouseentered(mouseevent me) { } public void mouseexited(mouseevent me) { } public void mousepressed(mouseevent me) { p = me.getpoint(); repaint(); } public void mousereleased(mouseevent me) { p = null; repaint(); } public void mousedragged(mouseevent me) { p = me.getpoint(); repaint(); } public void mousemoved(mouseevent me) { } public void paint(graphics g) { if (p!= null) { Dimension d = getsize(); int xc = d.width / 2; int yc = d.height / 2; g.drawline(xc, yc, p.x, p.y); } } }

課題 画面上に小さい円を描き それをドラッグすることで円を移動させられるプログラムを作りなさい ただし 画面ちらつき防止のためダブルバッファリングを用いなさい 黒い円をドラッグすると アプレット実行直後 円を移動させた後