事例:コードの解説

$ jython2.5b3 -i exWalkUserObject.py 

class Model(object):
    def createNodes(self, path, parent, indent=0):
        for e in listdir(path):
            child = DefaultMutableTreeNode(UserObject(current))
            if isdir(current):
                self.createNodes(current, child, indent+1)

current がフォルダー(ディレクトリー)isdir なら、ツリーの枝(branch)に位置するので、その傘下に子ノードを生成 createNodes する必要があります。

《Jython2.5》Tutorials - Classes and Objects

Java プログラマーのための Python 導入ガイド記事一覧
Tutorials - Classes and Objects

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

■ 概要

Java で記述したクラスに対して、Jython は便利な機能を提供します。

 Java で作成したモジュールを、Jython の世界から覗くと、新たな可能性が広がります。
 Jython を対話モードで起動すると、あたかも Javaインタープリターのように利用できます。
 JavaBeans に準拠したクラスを利用するときに、Jython では洗練された表現が可能になります。

 《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5 で再構成しました。
■ 関連記事

》作業中です《

$ javac CreateObjectDemo.java
$ ls
CreateObjectDemo.class	Point.class		Rectangle.class
CreateObjectDemo.java	Point.java		Rectangle.java
$ java CreateObjectDemo
Width of rectOne: 100
Height of rectOne: 200
Area of rectOne: 20000
X Position of rectTwo: 23
Y Position of rectTwo: 94
X Position of rectTwo: 40
Y Position of rectTwo: 72
■ 事例:クラス CreateObjectDemo
public class CreateObjectDemo {

    public static void main(String[] args) {
		
        //Declare and create a point object
        //and two rectangle objects.
        Point originOne = new Point(23, 94);
        Rectangle rectOne = new Rectangle(originOne, 100, 200);
        Rectangle rectTwo = new Rectangle(50, 100);
		
        //display rectOne's width, height, and area
        System.out.println("Width of rectOne: " +
                rectOne.width);
        System.out.println("Height of rectOne: " +
                rectOne.height);
        System.out.println("Area of rectOne: " + rectOne.getArea());
		
        //set rectTwo's position
        rectTwo.origin = originOne;
		
        //display rectTwo's position
        System.out.println("X Position of rectTwo: "
                + rectTwo.origin.x);
        System.out.println("Y Position of rectTwo: "
                + rectTwo.origin.y);
		
        //move rectTwo and display its new position
        rectTwo.move(40, 72);
        System.out.println("X Position of rectTwo: "
                + rectTwo.origin.x);
        System.out.println("Y Position of rectTwo: "
                + rectTwo.origin.y);
    }
}

Tips

各ノードには限られた情報しか提示できないので、どのような文字列にするかが鍵になります。
》作業中です《

Last updated♪09/05/23