[Java] jList wird nicht während des Programms aktualisiert

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Straight-Edge, 23. Dezember 2008 .

  1. 23. Dezember 2008
    jList wird nicht während des Programms aktualisiert

    Das Programm loggt sich auf den Server erfolgreich ein und soll alle Ordner durchgehen und die Daten anzeigen, die seit einem Datum neu sind! Das ist der Hauptaufruf. Er soll in dem Hauptaufruf in die JList schreiben, durch welchen Ordner er geht

    Code:
     ausgabe.add(f.getName() + " wird gelesen...");
     jList1.setListData(ausgabe);
    
    jedoch fügt er den text erst nachdem alle ordner durchlaufen sind ein!
    Falls man das

    Code:
     // JOptionPane.showMessageDialog(this, "bla");
    einfügt, fügt er die ausgabe (ein Vector<String>) in die jList ein und macht erst dann weiter, wenn man ok drückt. Also es klappt.

    Ich glaube man braucht eine Funktion, die das jFrame irgendwie neu zeichnet und die Funktion irgendwie anhält. Also ich glaube auch, dass der Aufruf von
    Code:
     jList1.setListData(ausgabe);
    durch ein thread aufgerufen wird und deshalb nicht klappt bzw klappen kann

    Hier nochmal der ganze Quellcode



    Code:
    public LinkedList<Eintrag> getNews()
     {
     LinkedList<Eintrag> liste = new LinkedList<Eintrag>();
     this.ausgabe.removeAllElements();
     cl.cd("FreeAgentDesktop-Partition-0-1");
     try
     {
     CoFile dir = new FtpFile(cl.pwd(),cl);
    
     CoFile fls[] = dir.listCoFiles();
     if(fls!=null)
     for(CoFile f : fls)
     {
     ausgabe.add(f.getName() + " wird gelesen...");
     jList1.setListData(ausgabe);
     jList1.updateUI();
     this.repaint();
     jList1.repaint();
     
     // JOptionPane.showMessageDialog(this, "bla");
     
     if ((f.isDirectory()) && (date.before(new Date(f.lastModified()))))
     {
     Eintrag e = new Eintrag(f.getName(), f.getAbsolutePath(), f.lastModified());
     liste.add(e);
     LinkedList<Eintrag> tmp = getOrdnerInfos(f.listCoFiles());
     for (Eintrag eintrag : tmp)
     {
     liste.add(eintrag);
     }
     }
     }
     }catch (IOException e)
     {
     JOptionPane.showMessageDialog(this, "IO");
     }
     catch (SecurityException f)
     {
     JOptionPane.showMessageDialog(this, "SEC");
     }
     return liste;
     }
     
  2. 23. Dezember 2008
    AW: jList wird nicht während des Programms aktualisiert

    immer das gleiche "-.-
    schau dir das inteface "Runnable" an...
    dann implementierst du einen neuen thread setzt das eine verzögerung von 5 ms oder so und gibst den befehl this.repaint();

    hf

    //e

    das ganze muss ausserdem in einer nie endenden schleife stehen
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.