プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学) 第2日の目標 Javaによるアニメーションの表現方法を知 る ファイル処理の概要を知る アプリケーションの作り方を知る 2008.08.14~15 プログラミング実習(Java) 2 第4章 Javaによるアニメーション表現 アニメーションの基礎 アニメーションの原理 マルチスレッド ダブルバッファ GUIによる制御 状態識別の変数,GUI部品の追加 リスナでStart/Stopを制御し状態識別の変数に反映 runメソッドを状態識別の変数に応じた動作に変更 2008.08.14~15 プログラミング実習(Java) 3 アニメーションの表現 第1章 コマ 第2章 第3章 少しずつ変化する 絵を連続的に描画 第4章 第5章 2008.08.14~15 残像に残る程度の時 間間隔を空ける。 プログラミング実習(Java) 4 マルチスレッド Threadクラスのオブジェクトにより, 同時進行できる別の“流れ”を生成 第1章 init() 第2章 th = new Thread(this) ; th.start() ; start() 第4章 第5章 run() 本流へ戻る 第3章 イベント処理 分流を作り分岐 独自のルー プを構成 リスナなど repaint() イベント待ちのループ (通常の流れ) update() paint() 2008.08.14~15 プログラミング実習(Java) 5 ダブルバッファ 第1章 計算を伴う場合遅れが目立つ 通常の処理 計算を伴っても遅れが目立たない 裏画面を使った処理 第2章 画面 画面 第3章 直接描画 転送のみ 第4章 g.drawImage() paint(g) メソッド g.drawLine()など 裏画面 第5章 paint(g) メソッド 2008.08.14~15 プログラミング実習(Java) backG.drawLine()など 6 sample07.javaの改造ポイント 第1章 init()メソッド 第2章 第4章 第5章 start()メソッド 第3章 全体の制御→[開始]ボタンが押された状態の時反復する 内容→変数 t の更新を行う paintBack()メソッド 2008.08.14~15 init()処理後にシステムから1度だけ実行 スレッドの生成や裏画面の確保を記述 run()メソッド プログラムが呼び出される時に1度だけ実行 GUI部品の設定などを記述 アニメーションの1コマ分に相当する画像を描画→ t に依 存して位置を決定→描画メソッドを用いた描画処理 プログラミング実習(Java) 7 GUIの追加(具体名は考える) 第1章 第2章 第3章 第4章 Buttonオブジェクトを追加して停止・実行で きるように改良 リスナーを追加 オブジェクトを生成し画面上に登録 ボタンに対してリスナーを登録 イベント処理用メソッドを追加 第5章 2008.08.14~15 boolean型変数isRunning を共通部分に準備 isRunningにてStart/Stopを制御 ButtonのラベルはsetLabel(“…”)メソッドで変更可能 run()内で isRunningがtrueの時に限り位置を更新 プログラミング実習(Java) 8 GUIの追加(解答) 第1章 第2章 Buttonオブジェクトを追加して停止・実行で きるように改良 第3章 第4章 リスナー ActionListenerを追加 オブジェクトを生成し画面上に登録(add) ボタンに対してリスナーを登録 (addActionListener) イベント処理用メソッドactionPerformedを追加 第5章 2008.08.14~15 boolean型変数isRunning を共通部分に準備 isRunningにてStart/Stopを制御 ButtonのラベルはsetLabel(“…”)メソッドで変更可能 run()内で isRunningがtrueの時に限り位置を更新 プログラミング実習(Java) 9 第5章 ファイル処理と総合演習 ファイルの入出力 画像ファイルの利用 総合演習 アプリケーション(ブラウザから独立した)プログラム の作成の要点 各自の興味に応じた復習・実習 総合質問 2008.08.14~15 プログラミング実習(Java) 10
© Copyright 2024 ExpyDoc