JTable aktualisieren

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • JTable aktualisieren

    Hallo,

    ich bin derzeitig daran eine kleine GUI zu programmieren die Einträge aus einigen Textfeldern in einer Tabelle anzeigen soll bzw auch in eine Datei speichern und beim starten lesen soll.

    Im moment hängt es noch etwas an der Aktualisierung der Tabelle. Ich habe mich etwas über DefaultTableModel informiert im API von Java und bin einmal auf fireTableDataChange stoßen nur allerdings funktioniert das nicht so wirklich.

    Nun bin ich auf diesen Eintrag von d0nut gestoßen: easy-coding.de/wiki/java/jtabl…odel-als-datenquelle.html

    Ich habe das mal ausprobiert mit der Methode addRow() und es funktioniert auch. Nach der Beschreibung vom API denke ich das er nur die Tabelle irgendwie aktualisiert aber nicht das eigentliche Datenobjekt wo die Anfangswerte drin sind?

    Müsste ich also somit einmal mit addRow() das Datum reinbringen und dann nochmal das Datum in mein Datenarray speichern und Methoden aufrufen um diese in eine Datei zu speichern? Oder wäre es besser direkt in eine Datei zu speichern und wieder zu lesen und dann die Tabelle upzudaten? Ich denke da stoße ich dann wieder mit fireTableDataChange() über ein TableListener richtig?


    Frohe Weihnachten!

    mfg

    Illidan
  • Ich bin mir nicht ganz sicher, was dein jetziges Problem ist.
    Du änderst die Daten in der Tabelle, aber rein optisch passiert nichts?

    Das Problem hatte ich gerade mit einer JProgressBar.
    Dort war folgendes Problem: Wenn man auf einen Button klickte, wurde die Methode actionPerformed() ausgeführt. Diese Methode wird, wenn man das so formulieren darf, im GUI-Thread ausgeführt. Dieser Thread ist aber auch für das Rendern der GUI zuständig. Nun war die Operation, die folgte extrem rechenintensiv und die JProgressBar sollte den Fortschritt anzeigen. Die Werte wurden zwar manipuliert, aber nichts geschah. Die Lösung dafür war einfach: Zur Berechnung wurde ein neuer Thread aufgemacht. Dann gings.