Hallo Forum,
ich brauche bitte einmal Eure Hilfe. Ich beschreibe kurz, was ich treibe und stelle dann die Frage(n):
Eine GUI Anwendung verwaltet Instanzen einer Klasse 'Tauchgang' mittels einer ArrayList vom Typ 'Tauchgang'. Diese Liste wird von einer Klasse 'TauchgangListe' bereit gestellt. Eine Instanz dieser Klasse wird in main unter dem Namen 'treeModel' erzeugt und der GUI im Konstructor übergeben.
In der GUI wird das übergebene 'treeModel' in einer gleichnamigen Instanzvariablen zur weiteren Verwendung gespeichert. Es wird ein JTree erstellt und ihm 'treeModel' als TreeModel übergeben.
Die Klasse 'TauchgangListe' implementiert das Interface TreeModel und stellt die ArrayList für die Objekte 'Tauchgang' zur Verfügung sowie benötigte Methoden, zum Beispiel zum hinzufügen von Tauchgang-Objekten.
Der JTree bzw. das Model (? oder eben woanders) brauchen ja einen rootNode
Meine Frage lautet (weil ich's einfach momentan nicht überblicke): Wo ist bzw. wer hält diesen rootNode?
Bitte erlaubt mir noch eine Frage gleich im Anschluß: Gibt es, oder hat einer von Euch, ein gut dokumentiertes Beispiel einer Implementation des Interfaces bzgl. eines JTree?
Danke für Eure Hilfe!
VG Holger
ich brauche bitte einmal Eure Hilfe. Ich beschreibe kurz, was ich treibe und stelle dann die Frage(n):
Eine GUI Anwendung verwaltet Instanzen einer Klasse 'Tauchgang' mittels einer ArrayList vom Typ 'Tauchgang'. Diese Liste wird von einer Klasse 'TauchgangListe' bereit gestellt. Eine Instanz dieser Klasse wird in main unter dem Namen 'treeModel' erzeugt und der GUI im Konstructor übergeben.
Code:
...
public static void main(String[] args) {
...
TauchgangListe treeModel = new TauchgangListe();
BMCheckWindow frame = new BMCheckWindow(treeModel);
frame.setVisible(true);
}
In der GUI wird das übergebene 'treeModel' in einer gleichnamigen Instanzvariablen zur weiteren Verwendung gespeichert. Es wird ein JTree erstellt und ihm 'treeModel' als TreeModel übergeben.
Code:
public class BMCheckWindow extends JFrame {
TauchgangListe treeModel;
private JTree treeDives;
public BMCheckWindow(TauchgangListe treeModel){
this.treeModel = treeModel;
createWidgets();
addWidgets();
}
private void createWidgets() {
treeDives = new JTree();
treeDives.setModel(treeModel);
}
private void addDive(String sIdent) {
treeModel.add(new Tauchgang(sIdent));
}
}
Die Klasse 'TauchgangListe' implementiert das Interface TreeModel und stellt die ArrayList für die Objekte 'Tauchgang' zur Verfügung sowie benötigte Methoden, zum Beispiel zum hinzufügen von Tauchgang-Objekten.
Code:
public class TauchgangListe implements TreeModel{
List<Tauchgang> tauchgangListe = new ArrayList<Tauchgang>();
public void add(Tauchgang TG){
tauchgangListe.add(TG);
}
@Override public void addTreeModelListener(TreeModelListener l) {}
@Override public Object getChild(Object parent, int index) {}
@Override public int getChildCount(Object parent) {}
@Override public int getIndexOfChild(Object parent, Object child) {}
@Override public Object getRoot() {}
@Override public boolean isLeaf(Object node) {}
@Override public void removeTreeModelListener(TreeModelListener l) {}
@Override public void valueForPathChanged(TreePath path, Object newValue) {}
}
Der JTree bzw. das Model (? oder eben woanders) brauchen ja einen rootNode
Code:
rootNode = new MutableTreeNode("keine Tauchgänge");
Meine Frage lautet (weil ich's einfach momentan nicht überblicke): Wo ist bzw. wer hält diesen rootNode?
Bitte erlaubt mir noch eine Frage gleich im Anschluß: Gibt es, oder hat einer von Euch, ein gut dokumentiertes Beispiel einer Implementation des Interfaces bzgl. eines JTree?
Danke für Eure Hilfe!
VG Holger