+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Daten in JTree einlesen

  1. #1
    Paule
    Gast

    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!!!

  2. #2
    Sym
    Sym ist offline
    Chefkoch-Mod Avatar 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

  3. #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

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Hardware-RAID-Lösung
    Von robo47 im Forum Plauderecke
    Antworten: 29
    Letzter Beitrag: 26.12.2007, 04:49
  2. Antworten: 15
    Letzter Beitrag: 05.07.2007, 18:53
  3. JTree wird nicht aktualisiert
    Von Waldi5001 im Forum Desktop-Applikationen und Grafik
    Antworten: 7
    Letzter Beitrag: 08.12.2005, 15:31
  4. daten in array eintragen und auslesen
    Von zerberos im Forum Allgemeine Java-Programmierung
    Antworten: 15
    Letzter Beitrag: 20.02.2005, 21:49
  5. [PHP] Wie übergebe ich Daten per URL?
    Von Ben im Forum Tutorials
    Antworten: 0
    Letzter Beitrag: 05.12.2004, 14:36

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

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