私は、次のようWorld
に表される世界のシミュレーションを開発しています。
public class World {
Turtle turtle;
// .. basic constructors, getters, setters
}
aTurtle
は次のように表されます。
public class Turtle {
List<Turtle> turtles;
// .. basic constructors, getters, setters
}
aTurtle
がその背中に立ち、 が1 つのメイン(その下にカメがいる場合があります) にturtles
かかっWorld
ています。Turtle
これを Swing で JTree として表現したいと考えています。
そこで、JTree と TreeModel をコーディングします。
JTree tree = new JTree(new WorldModel(world.getTurtle());
public class WorldModel implements TreeModel {
private Turtle = null;
public WorldModel(Turtle turtle) {
this.turtle = turtle;
}
@Override
int getChildCount(Object object) {
return ((Turtle) object).getNumTurtles();
}
@Override
Object getChild(Object parent, int index) {
return ((Turtle) object).getTurtle(index);
}
// etc., you get the overbearing point
}
これは、Turtle
最初に TreeModel のコンストラクターに渡した値を変更するまでは、うまく機能します。
world.getTurtle().removeAllTurtleChildren();
この変更を反映するように JList を更新するにはどうすればよいですか? 新しい TreeModel を作成して再度設定する必要がありますか?
(可能であれば、DefaultTreeModel から離れたいと思います。)