忍者ブログ
雇われるだけの人生から目指せ独立、社会人2年目なゲーム脳SEのブログ。更新頻度=週2~3回。
[185]  [184]  [183]  [182]  [181]  [179]  [178]  [177]  [175]  [176]  [174
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

前回より大変長らくお待たせしましたが、諸事情・・・おもに作者のやる気不足とかSwingの面倒さについていけなくなった等の理由で・・・ついに終わってしまいました!

まずは完成品をご覧ください。

TO000038.JPG

ださっ!!!
GridLayoutというレイアウトを使ってみてボタンとリストを並べてみたのですが、これはひどいです。仕方がないのでGridBagLayoutというよくわからないレイアウトを使ってみます。

TO000039.JPG

おお、だいぶスマートになりましたね。
もっともこれを実現するためだけに1時間以上APIリファレンスと格闘するはめになりました。どうしてこう、SwingのAPIは複雑怪奇なんでしょう・・・いやWin32APIに比べれば確かにマシだとは思いますけど。

TO000040.JPG

こちらがAdd new Notebookボタンを押したときに動くアクションリスナーです。匿名の内部クラスとして実装するのがSwing(といいますかVisual Editor)のしきたりみたいなのですが、このアクションリスナーを作っている最中にまた相当イライラさせられました。
  • パネルやウィンドウ自身を指し示めそうと思ってthisと使うとアクションリスナークラスの内部なのでアクションリスナー自身が返ってくる
  • アクションリスナーの外部の変数をアクションリスナー内部で使うためには外でfinal宣言した変数を作らなければならない
  • getTopLevelAncestor()メソッドを使えば自分の親(すなわちOreNotebook本体)のオブジェクトにアクセスできるのですが、そもそもコンポーネントのGetterメソッドがすべてprivateになる(Visual Editorのしきたりみたいです)ので、親にアクセスできたところで何も出来ない。ひょっとしたら無理矢理publicに書き換えるのが正解なのかもしれませんけど。
とまぁ、書いていてとにかくイライラ。なんでこんな美しくないソースになるんだろうと・・・
アクションリスナーの中身は1行、コントローラクラスを呼び出すだけにしたかったのですが・・・そうすれば同じ操作を画面の別の場所で行うとしても、1行書くだけですみます。アクションリスナーの中身で操作を行ってしまうと、別の場所に移植する際にすべてコピペすることになってしまい後から困ります。

愚痴はさておきまして。
コントローラやエンティティの実装も行いまして、実際に動作させてみました。

TO000041.JPG

Add new Notebookボタンを押すと新しい"abesi"という名前のノートブックがノートブックリストに追加されます!やった!
と、ここで私の忍耐力が限界を迎えてしまいました。もうこれ以上こんな設計思想もインターフェースもわからないAPIを使って綿密に設計するなんてできません。綺麗に設計するためには、本を買ってきてSwingを勉強し直す必要があるみたいです。

一応、ここまでの完成品をまとめたものをアップしておきます。
・Eclipse Workspace&Source
OreNotebook.zip
・UML
OreNotebook.jude

今回の企画の反省点。
  • UMLを作ることを重視しすぎた。設計だけなんてやっぱり楽しくないし、全くゼロの状態で設計だけを延々と進めると、実際に実装したときとUML図の乖離が大きくなり、結局UMLを修正しなくてはならなくなる、実装あってUMLありき。少し書いたらすぐ作る、すぐ作ったらまた設計。
  • Swingなどというよくわからないものを使おうとしてしまった。もっと熟知してから進めるべきだった・・・
  • 途中でGoogle App Engineという別の楽しそうなおもちゃを見つけてしまった。
次回に生かしたいと思います!
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
08 2017/09 10
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ブログ内検索
最新コメント
[11/13 DSLR-A850]
[08/29 逆援助交際]
[08/23 クンニ]
[08/22 熟女]
[08/19 痴漢]
はてなブックマーク
プロフィール
HN:
akisute
性別:
男性
職業:
システムエンジニア
趣味:
ゲーム・東方・ニコ動。あと散歩。
バーコード
推奨環境

横幅900px以上、Firefox 3, Safari 3, Opera 9.5, Chrome 0.2以上。IE7ギリギリ対応。IE6未対応。

忍者ブログ [PR]