Portal > Foren > Java > Desktop-Applikationen und Grafik > Daten in JTree einlesen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 13.04.2005, 21:23 Nach oben    #1
Paule
Gast
 
Beiträge: n/a
Standard Daten in JTree einlesen

Hallo,

ich bin am verzweifeln und ich hoffe mir kann jemand helfen
Folgendes Problem: Ich bekomme aus einer Datenbank Daten geliefert. Dies sind Quizze und diese sind gewissen Themengebieten zugeordnet (im Programm nennt sich dies Ordner). Nun möchte ich im JTree die Quizze zu ihren Themengebieten zuordnen. Dazu werden Ordner erstellt und darin dann die Quizze abgelegt.
Hier mal die wichtigsten Stellen des Quellcodes:

PHP-Code:
private JTree tree
 protected 
DefaultMutableTreeNode root
 protected 
DefaultTreeModel treeModel
  
 public 
MainWindow(Editor ownerint AuthorID) { 
 
//   Tree bauen 
          
 
root = new DefaultMutableTreeNode("alle quizzes"); 
 
treeModel = new DefaultTreeModel(root); 
 
tree = new JTree(treeModel); 
 
TreeSelectionModel tsm = new DefaultTreeSelectionModel(); 
 
tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
 
tree.setSelectionModel(tsm); 
 
tree.setRootVisible(true); 
 
initTree(); 
 }
// Konstruktor 
  
 
private void initTree() { 
       
Quiz help = new Quiz(); 
       
String[] files = new String[100]; 
       
TreePath tp
       
int i 0
       
boolean exist false
        
       for (
int j=0j<100j++) 
          
files[j] = new String(""); 
        
       while (
DbAccess.db_quiz_e(AuthorID)[i] != null) { 
          
help DbAccess.db_quiz_e(AuthorID)[i]; 
          if (
help.Ordner == null) { // falls das Quiz keinem Ordner zugeteilt ist 
             
tp = new TreePath(root); 
             
DefaultMutableTreeNode node
            
node = (DefaultMutableTreeNode)tp.getLastPathComponent(); 
             
DefaultMutableTreeNode child
             
child = new DefaultMutableTreeNode(help.Quiztitel); 
            
treeModel.insertNodeInto(childnodenode.getChildCount()); 
             
TreeNode[] path treeModel.getPathToRoot(node); 
             
tree.expandPath(new TreePath(path)); 
          } 
          else { 
// wenn das Quiz einem Ordner zugeteilt ist 
              
             
for (int j=0j<100j++) { 
                if (
files[j].equals(help.Ordner)) { 
                   
exist true
                }
// if files 
             
}// for i=0 ->100 
              
             
if (exist == false){ 
                for (
int j=0j<100j++){ 
                   if (
files[j].equals("")) 
                     
files[j] = help.Ordner//Ordner in Liste aufnehmen 
                
break; 
                } 
             }
// if exist false 
              
              
              
             
tp = new TreePath(root); 
             
DefaultMutableTreeNode folder
             
folder = new DefaultMutableTreeNode(help.Ordner); 
             
// Ordner anlegen 
              
            
if (exist == false){ //wenn Ordner noch nicht existiert 
                
DefaultMutableTreeNode node
             
node = (DefaultMutableTreeNode)tp.getLastPathComponent(); 
             
treeModel.insertNodeInto(foldernodenode.getChildCount()); 
             } 
              
             
// Quiz in Ordner einfügen 
             
tp = new TreePath(folder); 
             
DefaultMutableTreeNode node1
            
node1 = (DefaultMutableTreeNode)tp.getLastPathComponent(); 
             
DefaultMutableTreeNode child
             
child = new DefaultMutableTreeNode(help.Quiztitel); 
            
treeModel.insertNodeInto(childnode1node1.getChildCount()); 
              
             
TreeNode[] path treeModel.getPathToRoot(node1); 
             
tree.expandPath(new TreePath(path)); 
          } 
           
       
i++; 
       }
//while (dbAcces) 
    
}// initTree 
Ich habe folgendes bemerkt: Wenn erst ein neuer Ordner erstellt werden muss um darin dann das Quiz zu speichern, dann funktioniert es. Aber der Fall, dass das Quiz in einen schon existierenden Ordner eingefügt wird, der will nicht klappen.
Erkennt jemand warum?

Schon mal danke für die Hilfe.

Gruß Paule!!!
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.04.2005, 11:57 Nach oben    #2
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Hi,

sorry, aber ich finde den Code alles andere als selbsterklärend. So viel Zeit habe ich da nicht, um mich da durch zu wuseln.

Um Dein Problem anzugehen, würde ich einen Debugger empfehlen und jeden Schritt einfach nachverfolgen. Mit Eclipse geht das ganz elegant. Wenn Du nur in einer Konsole programmierst, solltest Du die wichtigen Stellen ausgeben.

Im allgemeinen:
  • Deklaration und Definition geht auch in einer Zeile, was die Lesbar wesentlich erhöht. (z.B. DefaultMutableTreeNode node = (DefaultMutableTreeNode)tp.getLastPathComponent();
  • Variablen sollten in den meisten Fällen einen kurzen Kommentar bekommen.
  • Der Performanz ist es zuträglich, wenn man manche Dinge in einer Schleife erledigt (z.B. deine if(exist == false)).
Aber das sind nur gutgemeinte Tips von mir.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.04.2005, 22:51 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 02.09.2004
Beiträge: 22
Standard Zweifel an root

Hallo!

Verstehe ich Dich richtig? Die "quizze" sind immer in Ordnern der 1 Ebene organisiert? Ich könnte mir vorstellen das ein PathToRoot von root nach root evtl. leer ist!? Wieso benutzt Du nicht root.add()???

MfG!
Franz
franz77 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hardware-RAID-Lösung robo47 Plauderecke 29 26.12.2007 04:49
Daten von einem Server ausgeben und auf anderem einlesen - PHP Jan PHP-Programmierung 15 05.07.2007 18:53
JTree wird nicht aktualisiert Waldi5001 Desktop-Applikationen und Grafik 7 08.12.2005 15:31
daten in array eintragen und auslesen zerberos Allgemeine Java-Programmierung 15 20.02.2005 21:49
[PHP] Wie übergebe ich Daten per URL? Ben Tutorials 0 05.12.2004 14:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45