#author("2019-06-20T17:03:14+09:00","default:takataka","takataka") #author("2019-06-20T17:03:35+09:00","default:takataka","takataka") *グラフィックス基礎及び実習 2019年度 第11回 [#e9701092] #contents &color(#ff0000){工事中}; //&color(#ff0000){工事中}; //**注意 [#notice] **課題A(self) 完成目標: 今回の実習終了まで [#kadaiA] + 講義資料 1/4 と 2/4 をよく読んでから,右のリンク先のPDFファイルを閲覧し,手書きの部分を講義資料に書き写しなさい.[[資料(学内アクセス限定)>Graphicsgakunai:scan2018-11-p12.pdf]] + 講義資料 2/4 の HelloEvent クラスを作って動かしてみよう **課題B(self) 完成目標: 今回の実習終了まで [#kadaiB] [[G11PochiSample.class>Graphics:G11PochiSample.class]] + 上記リンク先のクラスファイルをダウンロードしていつもの場所に置き,実行してみなさい. -- よく観察しよう.最初はどうなってるか? ボタンを押すとどうなるか? -- ボタンを押した回数を,2つのボタンを区別せずカウントして,それが5回以上になるとメッセージが変化する. + これと同じ動作をするプログラムを作りなさい.ただし,クラス名は G11Pochi とすること. ヒント: 上記の動作を実現するには,ボタンが押された回数をカウントする必要がある.イベントハンドラからアクセスされるものなので,回数を数えるための変数をG11Pochi クラスのインスタンス変数として宣言,ボタンのイベント処理ごとにその変数を ++,それが一定回数以上なら...としたらよい. **課題C(TA) 締切: 次回実習開始直後 [#kadaiC] [[G11OmikujiSample.class>Graphics:G11OmikujiSample.class]] + 上記リンク先のクラスファイルをダウンロードしていつもの場所に置き,実行してみなさい. + これと同じ動作をするプログラムを作りなさい.ただし,クラス名は G11Omikuji とすること. -- それぞれの確率は等しくならないよう工夫すること -- メッセージは好きに工夫すればよい.大吉,吉,凶,大凶以外に追加したりしてもよい. ヒント: - サンプルのようなコンポーネント配置を実現するには,Button の prefWidth プロパティを設定 & BorderPane を使うとよい. - Math クラスのクラスメソッド random を使おう(p.41) **課題S(omake) [#kadaiS] //&color(#ff0000){工事中}; [[G11MenuSample.class>Graphics:G11MenuSample.class]] 上記リンク先のクラスファイルをダウンロードしていつもの場所に置き,実行してみよう. これと同じ動作をするプログラムを作ろう.ただし,次の指示に従うこと. - クラス名は G11Menu とする - 項目数が増減しても平気なように,配列をうまく使おう. ++ 次のようにファイル名と Image オブジェクトの配列を作ろう #pre{{ /* Image オブジェクトの配列の作成 */ String[] fns = { "pochittona.png", "blackuni.jpg", "whiteuni.jpg" }; Image[] imgs = new Image[fns.length]; for(int i = 0; i < imgs.length; i++){ imgs[i] = new Image(fns[i]); } }} ++ MenuItem も配列にしよう. ++ イベントハンドラの登録は,for文使って書こう. - これできたら課題Tも実は簡単.ぜひどうぞ. **課題T(omake) [#kadaiT] //&color(#ff0000){工事中}; [[G11TimerSample.class>Graphics:G11TimerSample.class]] 上記リンク先のクラスファイルをダウンロードしていつもの場所に置き,実行してみよう. これと同じ動作をするプログラムを作ろう.ただし,次の指示に従うこと. - クラス名は G11Timer とする - 課題S同様に配列を使おう - 次々画像が切り替わって表示される仕組みは,一定時間間隔でイベントを発生させるタイマーとそのイベント処理である.JavaFX でタイマーを使うには,以下を参考にしたらよい. -- http://tomasmikula.github.io/blog/2014/06/04/timers-in-javafx-and-reactfx.html の Periodic action のところ -- https://docs.oracle.com/javase/8/javafx/api/javafx/animation/Timeline.html -- 教科書 15.4.3 節