Ich benötige eine graphische Benutzeroberflächen-Klasse, welche größere Logdateien (ca. 20 MByte Text) farbig anzeigt. JEditorPane ist damit schnell überfordert. Ich würde die Logdatei zeilenweise zusammen mit einem Attribut (Enumerationstyp) in einem generischen Vector speichern. Von hier gibt es zwei Wege - entweder 1.) anhand der Position der Scrollbalken den aktiven Ausschnitt erkennen und zeichnen oder 2.) alles auf ein riesiges Image zeichnen und von diesem dann den Ausschnitt "blitten". Was wäre der günstigste Weg? Oder kennt jemand schon eine gute freie Klasse für diesen Zweck?
Riesenharf schrieb: > JEditorPane ist damit schnell überfordert Was benutzt du den? HTML/RTF? Incrementelle Updates oder alles in einem Rutsch... eigenes Dokumentenmodell? Hier gibt es einige Tips zur Optimierung: http://java-sl.com/JEditorPanePerformance.html Bei Logeinträgen würde es sich ggf. auch anbieten eine Jlist mit je einem EIntrag/Logentry + Custom Renderer zu nutzen.
Riesenharf schrieb: > Ich benötige eine graphische Benutzeroberflächen-Klasse, welche größere > Logdateien (ca. 20 MByte Text) farbig anzeigt. > JEditorPane ist damit schnell überfordert. > > Ich würde die Logdatei zeilenweise zusammen mit einem Attribut > (Enumerationstyp) in einem generischen Vector speichern. Hmm, hmm, verbraucht ganz schön viel Speicher für Kram den Du garnicht anzeigst. Besser nur den gerade angezeigten Bereich und ein bisschen drumherum speichern. > Von hier gibt es zwei Wege - entweder > 1.) anhand der Position der Scrollbalken den aktiven Ausschnitt > erkennen und zeichnen oder Ja. > 2.) alles auf ein riesiges Image zeichnen und von diesem dann den > Ausschnitt "blitten". Nein, um Gottes Willen! Du hast ja selber schon "riesiges Image" gesagt, hast Du mal ausgerechnet wie gross das wirklich werden kann? Ich denke das dürfte jenseits von Gut und Böse(tm) sein. > Was wäre der günstigste Weg? Oder kennt jemand schon eine gute freie > Klasse für diesen Zweck? Keine Ahnung, ich nehme da so Sachen wie Baretail und gut ist.
Ich benutze text/rtf. Die Empfehlungen auf der angegebenen Seite http://java-sl.com/JEditorPanePerformance.html habe ich schon durchgearbeitet. Speziell geholfen hat http://javatechniques.com/blog/faster-jtextpane-text-insertion-part-i/ und http://javatechniques.com/blog/faster-jtextpane-text-insertion-part-ii/ Allein die Verwendung eines separaten Document-Objekts reduzierte die benötigte Zeit um eine Größenordnung. Ein separates Programm kommt leider nicht in Frage, da mein Programm die Logdateien von Geräten per scp herunterlädt und nebenbei auch Temperatur- und Spannungswerte graphisch darstellt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.