画面に入力した文字列(コマンド)で起動する処理をプログラムを変更しないでも追加できるように実装を変更します。
現状の実装
- Executeボタンを押下すると処理が動く
- 画面の上部中央にあるテキストふフィールドの値を取得
- 画面の下にあるClearボタンで表示したイメージを消す
シンプルに、ボタンを押下→Canvas部分にイメージを描画
という処理を行っています。Clearボタンを押下するとCanvasに描画したイメージがクリアされて何もなくなります。
次の実装
実装した時の動画を作成しました。
行っていることは、下の通りです。
- CommandIF(インターフェースクラス)を作成
- LearnOpenCvクラスにCommandIFを実装(impllements)
- 起動確認
Githubにて、実装の差分を見ることができます。
とりあえず、ここまでの実装では、動き的にはじめのものと変わりません。そのように作りました。
ポイントとしては、CommandIFを追加したので、CommandIFを実装したクラスなら、なんでも実行することができるようになったというところです。
クラスを動的に変更して見る
ここで追加するのが、Propertyファイルです。
処理内容としては下のような手順です。
- Propetiesクラスを使用してプロパティファイルを読み込む
- キー(コマンド)がプロパティファイル内にないときはエラーメッセージをコンソールに出力
- キー(コマンド)で起動するクラスの完全名を取得する
- 完全クラス名でクラスのインスタン種を取得する
- 取得したクラスはCommandIFを実装しているので
execute()
を実行する - 結果をGraphicsContextクラスに描画する→JavaFXのCanvasに描画される
こんな感じです。
実行した結果は動画にしました。余計な音が入っています。
前半
後半
次回
OpenCVでの学習を開始します。ようやく準備ができました。
でわでわ。。。