《Jython2.5》JTree〈GoF〉Command を導入する
Java プログラマーのための Python 導入ガイド〈初級/応用編〉《Jython2.5》
JTree〈GoF〉Command を導入する
《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03
■ 概要
フォルダー/ファイルの階層構造を Swing/GUI を利用して「簡単に」閲覧できるツールがあると便利です。
この課題では、Swing/GUI を使って階層構造を持つ情報を提示します。 また〈GoF〉Composite/Iterator/Visitor/Command パターンを導入することで、 構造化プログラミングには必須の if/for が不要になるので、簡潔で見通しが良く、 要求仕様の変更にも柔軟に対処できる、プログラム(コード)を作成する方法を紹介します。 《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5 で再構成しました。
事例:モジュールを起動する
モジュールを起動すると、次のようなウィンドウが現れます。
$ jython2.5b3 -i TreeEx.py
ボタンによって、テキスト表示〔Text〕とツリー表示〔Tree〕を選択できます。
⇒ 続きはこちら 》コードの解説《 で
■ 事例:テキスト表示
ボタン〔Text〕を押すと、次のようなウィンドウが現れます。
これは、選択したノードの傘下を、テキスト(JTextArea)で表現したものです。この表示は普通の「文字列」なので、これを転記して、レポート作成などに再利用できます。
⇒ 続きはこちら 》コードの解説《 で
考察:作成したツールを使って
Command を導入後のモジュール構成を、作成したツール自身で解析すると次のようになります。
■ 導入前
dpJTree +-- class
+-- TreeComposite$py.class (12697) |
+-- TreeEx$py.class (8015) |
+-- TreeView$py.class (11890) |
+-- TreeVisitor$py.class (6365) |
+-- TreeComposite.py (3236) |
+-- TreeEx.py (2544) |
+-- TreeView.py (4308) |
+-- TreeVisitor.py (1119) |
■ 導入後
$ jython2.5b3 -i TreeEx.py /Users/sketch/home_Jython/swing/dpJTree dpJTree +-- class
+-- TreeCommand$py.class (7156) |
+-- TreeComposite$py.class (12697) |
+-- TreeEx$py.class (8048) |
+-- TreeView$py.class (10549) |
+-- TreeVisitor$py.class (6365) |
+-- TreeCommand.py (1587) |
+-- TreeComposite.py (3236) |
+-- TreeEx.py (2570) |
+-- TreeView.py (3698) |
+-- TreeVisitor.py (1119) |
>>> "%d%%"%(3698/4308*100) # TreeView.py '85%' >>> "%d%%"%(10549/11890*100) # TreeView.class '88%'小さく(ソースコード 85%, バイトコード 88%)なっているのが分かります。
Tips
》作業中です《Last updated♪09/05/26