Java/Python 導入ガイド:swing/Jython - JFC/Swing

Java プログラマーのための Python 導入ガイド記事一覧
swing/Jython - JFC/Swing

《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03
》作業中です《

■ 概要

JavaBeans に準拠したクラスに対して、Jython は便利な機能を提供します。

 Java で作成したモジュールを、Jython の世界から覗くと、新たな可能性が広がります。
 JavaBeans に準拠したクラスを利用するときに、Jython では洗練された表現が可能になります。
 getter/setter メソッドを呼び出すときに(C# のプロパティーと同様に)簡潔なコードを記述できます。

事例:JFC/Swing

Swing が提供する GUI コンポーネント群は、JavaBeans に準拠したものです。

Jython の世界

Java で作成したモジュールを、Jython の世界から覗くと、新たな可能性が広がります。

#! /usr/bin/jython2.5b3
"""
    
Swing が提供する GUI コンポーネント群を、Jython で記述したクラスと同様に扱えます。
■ DefaultListModel
>>> x = DefaultListModel(); x

>>> x.addElement("A"); x
[A]
>>> x.addElement("B"); x        
[A, B]
>>> x.addElement("C"); x
[A, B, C]
>>> x.removeElement("C")
True
>>> x
[A, B]
>>> x.clear(); x

>>> None
version #1.0.1
"""
DefaultListModel に適用できるメソッド群 addElement/removeElement/clear を利用すると、モデルの状態を更新できます。

モジュール modtest

import   DefaultListModel_ex
module = DefaultListModel_ex

from doctest import testmod

def ex():
    reload(module)
    testmod(module)    

if __name__=='__main__':
    testmod(module)
Java で作成したクラス Person を、Jython で記述したクラスと同様に扱えます。
■ テスト結果
テストケースを含むモジュール DefaultListModel_ex.py を実行すると、次のようなテスト結果が出力されます。
$ jython2.5b3 -i DefaultListModel_ex.py 
**********************************************************************
File "/Users/sketch/home_Jython/_myHome/PyoSwing/_pyoSwing/ex_testmod/DefaultListModel_ex.py", line 19, in DefaultListModel_ex
Failed example:
    None
Expected:
    version #1.0.1
Got nothing
**********************************************************************
1 items had failures:
   1 of   9 in DefaultListModel_ex
***Test Failed*** 1 failures.
>>> 
ここでは、9 件中に 1 件の不具合が発生しています。

Tips

モジュール modtest を利用すると、対話モードで試行錯誤した履歴を、そのままテストケースとして再利用できるので、アジャイル開発を促進します。 》作業中です《
Last updated♪09/05/12