Schattenfänger
Lt. Junior Grade
- Registriert
- Nov. 2010
- Beiträge
- 273
Hey, also ich sitze hier seit ca. 80h bei einem kleinen Projekt dabei, welches eigentlich schon ganz zufriedenstellend ist.
Jedoch habe ich die Gui getrennt geschrieben, sprich, JTree/TabbedPane/Area usw getrennt.
Jetzt wollte ich jTree hinzufügen und aus irgendeinem Grund - sei es weil ich es einfach nicht sehe oder verstehe bekomme ich in JTree nicht mehr meine Daten rein. Ich skizziere hier mal schnell wie man Aufabu bisher war.
Bisher:
Und danach knapp 500Zeilen für Listener und das JFrame, auf dem ich den Tree gepackt habe.
Bis dahin hat alles wunderbar funktioniert!
Jetzt:
Alles gleich geblieben, außer dass die Daten nicht mehr hier befüllt werden und kein JFrame erstellt wird.
Wenn ich mir die Methode loadData im Tree anschaue dann sehe ich genau, dass die Daten vom Model zu root hinzugefügt werden. Jedoch wird mir trotzalledem nur die Defaultwerte vom Tree angezeigt (color, sport, food)
Wäre wirklich schöön wenn mir jemand auf die Sprünge helfen kann, weil ich habe da noch knapp 15 andere Methoden die nur für Model - Tree Kommunikation sind, aber die brauche ich mir gar nicht erst anschauen, wenn nicht mal das laden von den Anfangswerten funktioniert.
Und ja, es ist alles an relevantem Code, da gibt es eigentlich nicht mehr, so fern sich Listener nicht auf den Inhalt auswirken.
Und eine Frage noch:
Wie ist es möglich von einer inneren Klasse auf die Instanz der äußeren zuzugreifen?
Sprich:
this würde in diesem Fall auf TreeSelectionListener referenzieren.
Ich habe es im Moment so gelöst, dass ich oben einfach sagte tree=this (also MyTree).
Jedoch habe ich die Gui getrennt geschrieben, sprich, JTree/TabbedPane/Area usw getrennt.
Jetzt wollte ich jTree hinzufügen und aus irgendeinem Grund - sei es weil ich es einfach nicht sehe oder verstehe bekomme ich in JTree nicht mehr meine Daten rein. Ich skizziere hier mal schnell wie man Aufabu bisher war.
Bisher:
Code:
MyTree{
public MyTree{
model = new InfoModel();
oadData(this.model.getData());
tree = new JTree(root);
Und danach knapp 500Zeilen für Listener und das JFrame, auf dem ich den Tree gepackt habe.
Bis dahin hat alles wunderbar funktioniert!
Jetzt:
Code:
public MyTree extends JTree{
public MyTree(MyNode root) {
this.root = root;
this.tree=this;
Code:
public BaseGUI{
//gui zeugs halt
MyNode root = new MyNode(new MyFile("root"));
MyTree tree = new MyTree (root);
tree.loadData(this.model.getData());
Wenn ich mir die Methode loadData im Tree anschaue dann sehe ich genau, dass die Daten vom Model zu root hinzugefügt werden. Jedoch wird mir trotzalledem nur die Defaultwerte vom Tree angezeigt (color, sport, food)
Code:
public void loadData(List<MyFile> list) {
root.removeAllChildren();
for (MyFile entry : list) {
root.add(new MyNode(entry));
}
DefaultTreeModel model = (DefaultTreeModel) (this.getModel());
model.nodeStructureChanged(root);
}
Wäre wirklich schöön wenn mir jemand auf die Sprünge helfen kann, weil ich habe da noch knapp 15 andere Methoden die nur für Model - Tree Kommunikation sind, aber die brauche ich mir gar nicht erst anschauen, wenn nicht mal das laden von den Anfangswerten funktioniert.
Und ja, es ist alles an relevantem Code, da gibt es eigentlich nicht mehr, so fern sich Listener nicht auf den Inhalt auswirken.
Und eine Frage noch:
Wie ist es möglich von einer inneren Klasse auf die Instanz der äußeren zuzugreifen?
Sprich:
Code:
this.getSelectionModel().addTreeSelectionListener(
new TreeSelectionListener() {
Ich habe es im Moment so gelöst, dass ich oben einfach sagte tree=this (also MyTree).