Threads jTextArea Ausgabeproblem

caitoo

Mitglied
Hallo,
ich programmiere mit Apache Netbeans unter Windows 10 und habe mir zum Testen ein kleines Programm erstellt. Die GUI besteht lediglich aus einem Button und einer TextArea.
Wenn der Button angeklickt wird, soll ein Verzeichnis rekursiv ausgelesen und die Dateien anschließend in ein anderes Verzeichnis kopiert werden. Das klappt auch alles.
Damit der User sieht, was gerade passiert möchte ich nach jeder kopierten Datei in der TextArea eine Meldung ausgeben, welche Datei gerade kopiert wird.
Das ganze läuft in einer Schleife. Diese durchläuft ein Array welches zuvor mit den Dateinamen gefüllt wurde.
Mein Gedanke war wie folgt:
Java:
[/B] 
for(int i = 0; i < files.length; i++){
    kopiere Datei[i];
    schreibe die Meldung in die TextArea;
}
[B]
- In die Schleife einsteigen und dann die erste Datei kopieren.
- Als nächstes die Ausgabe in der TextArea, welche Datei gerade kopiert wurde
- und dann zur nächsten Datei.
Nach meinem Verständnis sollte das eigentlich kein Problem sein. Das Programm geht aber her und kopiert erst alle Dateien und gibt erst dann die Meldungen aus.
Nach meinen bisherigen Recherchen im Internet ist die GUI beim Kopieren blockiert. Die Quellcodezeile für die Ausgabe in TextArea wird zwar ausgeführt aber in der GUI nicht angezeigt. Erst wenn alle Dateien kopiert sind ist die GUI wieder "frei" und er führt dann nachträglich noch alle Ausgabeanweisungen aus.
Ich habe deshalb die eigentliche Kopieraktion in einen Thread ausgelagert. Das Ganze sieht dann etwa so aus:
Java:
[/B] 
for(int i = 0; i < files.length; i++){
    Thread erstellen
    Thread starten mit .start()
    mit .join() warten bis die erste übergebene Datei im Thread kopiert wurde
    dann die Meldung in die TextArea schreiben;
}
[B]
Leider ändert sich am Verhalten meines Programms überhaupt nichts.
Hat von Euch schon mal jemand eine solche Funktionalität in sein Programm eingebaut und wenn ja, wie wurde es umgesetzt.
Mir würde es schon genügen, wenn ich hier die Codeschnipsel nur für mein Problem bekomme. Ich muss nicht den Code für die ganze Anwendung sehen.
Wäre Euch für Hilfe echt dankbar.

Gruß Ralf
 

LimDul

Top Contributor
Das Join ist falsch :)

Das in einen eigenen Thread auslagern ist schon richtige Idee. Der Hauptthread läuft dann einfach weiter (ggf. solltest Buttons deaktivieren, auf die man während es Kopiervorgangs nicht drücken soll).

Aber einen Thread, der alle Dateien kopiert. Und der Thread bekommt als Info:
* Die Liste der zu kopierenden Datei
* Die JtextArea wo er den Status protokollieren soll.

Immer wenn Thread dann eine Datei kopiert hat, aktualisiert er mittel SwingUtils.invokeLater die TextArea und ruft repaint auf.
 

caitoo

Mitglied
Hallo LimDul, erst mal vielen Dank für den Tipp. Wenn ich Dich richtig verstehe, dann sollte die komplette Schleife in der das Array mit den Dateinamen durchlaufen wird in den Thread ausgelagert werden? Ich werde es testen und berichten ob es funktioniert hat.
 

caitoo

Mitglied
Das Join ist falsch :)

Das in einen eigenen Thread auslagern ist schon richtige Idee. Der Hauptthread läuft dann einfach weiter (ggf. solltest Buttons deaktivieren, auf die man während es Kopiervorgangs nicht drücken soll).

Aber einen Thread, der alle Dateien kopiert. Und der Thread bekommt als Info:
* Die Liste der zu kopierenden Datei
* Die JtextArea wo er den Status protokollieren soll.

Immer wenn Thread dann eine Datei kopiert hat, aktualisiert er mittel SwingUtils.invokeLater die TextArea und ruft repaint auf.

Hallo LimDul,
habe Deinen Tipp umgesetzt und siehe da es hat funktioniert. Wie mein Chef immer schon sagte "Kaum richtig gemacht und schon funktioniert es." :)

Vielen Dank nochmal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTextArea getText() Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
T JTextarea in txt datei speichern Java Basics - Anfänger-Themen 3
snipesss JTextArea wird nicht angezeigt Java Basics - Anfänger-Themen 3
R JTextArea final Status ändern Java Basics - Anfänger-Themen 11
T Klassen JTextArea und TextArea Java Basics - Anfänger-Themen 8
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O JTextPane / JtextArea Zeilenabstand entfernen Java Basics - Anfänger-Themen 1
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
O JTextArea: Wo wird der Text gespeichert? Wie kann man es verhindern? Java Basics - Anfänger-Themen 4
M Farbiger Text in JTextArea Java Basics - Anfänger-Themen 5
H Input/Output JTextArea einzelne Zeile auslesen Java Basics - Anfänger-Themen 6
M Refresh JTextArea Java Basics - Anfänger-Themen 12
X Methode in JTextArea anzeigen lassen Java Basics - Anfänger-Themen 18
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
Q jTextArea maximale Textlänge Java Basics - Anfänger-Themen 3
Q jTextArea Zeilenendzeichen Java Basics - Anfänger-Themen 4
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
L Socket in JTextArea Java Basics - Anfänger-Themen 9
F JTextArea in .txt speichern Java Basics - Anfänger-Themen 13
E JTextArea beim Schreiben automatisch vergrößern Java Basics - Anfänger-Themen 7
F jTextArea Java Basics - Anfänger-Themen 3
D JTextArea Absätze von datei.txt übernehmen Java Basics - Anfänger-Themen 7
B Werte aus JTextArea in einem String Array ablegen Java Basics - Anfänger-Themen 4
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
S JTextArea mit LineWrap true viel zu groß! Java Basics - Anfänger-Themen 2
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
N ein Array auf eine JTextArea ausgeben Java Basics - Anfänger-Themen 2
B JTextArea Farbe und Schrift aendern Java Basics - Anfänger-Themen 2
R JTextArea append Java Basics - Anfänger-Themen 2
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
M JTextArea Zeichen Beschränken Java Basics - Anfänger-Themen 11
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
N Dateiinhalt zu jTextArea hinzufügen Java Basics - Anfänger-Themen 2
StrikeTom JTextArea mit txt-dateiinhalt füllen Java Basics - Anfänger-Themen 11
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
K Text aus einem Datei lesen , und im JTextArea ausgeben. Java Basics - Anfänger-Themen 3
manunana89 Farbiger Textteile in JTextArea oder ähnlichem! Java Basics - Anfänger-Themen 5
B aktuelle Position einer JTextArea ermitteln Java Basics - Anfänger-Themen 6
Developer_X Strings in JTextarea suchen Java Basics - Anfänger-Themen 15
J Java JTextArea und ActionListener Probleme Java Basics - Anfänger-Themen 6
G JTextArea & Zeichenbegrenzung Java Basics - Anfänger-Themen 4
G Mit Tab aus der JTextArea? Java Basics - Anfänger-Themen 2
G JTextArea - farbige Schrift Java Basics - Anfänger-Themen 5
hdi Alternative zu JTextArea? Java Basics - Anfänger-Themen 3
T Text Rechtsbündig in jTextArea Java Basics - Anfänger-Themen 4
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
I Schriftart für einzelnes Wort in der JTextArea auswählen Java Basics - Anfänger-Themen 3
B jTextArea Neuzeichnung erzwingen Java Basics - Anfänger-Themen 3
L JTextArea große setzen Java Basics - Anfänger-Themen 5
G in einer JTextArea ROTE SCHRIFT ausgeben Java Basics - Anfänger-Themen 11
H JTextarea mit automatischem Scrolling Java Basics - Anfänger-Themen 6
W Zeilenposition in JTextArea feststellen(ohne Caret) Java Basics - Anfänger-Themen 7
G Ausgababeumlenkung in JTextArea Java Basics - Anfänger-Themen 4
S Ausrichtung des Textes in einer JTextArea Java Basics - Anfänger-Themen 12
C JTextArea + Zeilennummerierung Java Basics - Anfänger-Themen 3
D Eine ganze Textdatei in einer jTextArea anzeigen Java Basics - Anfänger-Themen 4
D JTextarea mit Zeilenumbruchs Problem Java Basics - Anfänger-Themen 10
R JTextArea +Leerzeilen Java Basics - Anfänger-Themen 3
M String aus externer Klasse in JTextArea schreiben Java Basics - Anfänger-Themen 4
G JTextArea mit Daten aus Datenbank ( im Wert Sring ) befüllen Java Basics - Anfänger-Themen 3
I JtextArea zeigt nichts an! Java Basics - Anfänger-Themen 3
B JTextArea mit verschiedenen Fonts Java Basics - Anfänger-Themen 4
I JTextArea insert Methode Java Basics - Anfänger-Themen 5
G JTextArea: Anlegen, Text löschen, überschreiben Java Basics - Anfänger-Themen 4
G Zählen der Zeichen in JTextArea? Java Basics - Anfänger-Themen 4
G JTextArea Java Basics - Anfänger-Themen 7
E Bild in JTextArea einfügen Java Basics - Anfänger-Themen 16
E Automatischer Zeilen-Umbruch bei JTextArea Java Basics - Anfänger-Themen 4
N JPanel / JTextArea vergrößern Java Basics - Anfänger-Themen 6
H Zeilennummern in JTextArea Java Basics - Anfänger-Themen 3
S JTextArea Java Basics - Anfänger-Themen 6
G JTextArea: insertUpdate() und writeLock() Java Basics - Anfänger-Themen 3
P In JTextArea soll automisch an einen bestimmte Scrollbar pos Java Basics - Anfänger-Themen 14
J schleife unterbrechen JTextArea aktualisieren Java Basics - Anfänger-Themen 8
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
D Mehrfarbige Zeilen in JTextArea Java Basics - Anfänger-Themen 4
D Text aus JTextArea löschen ? Java Basics - Anfänger-Themen 10
G Aktion bei Änderung in JTextArea starten Java Basics - Anfänger-Themen 2
C Markierten Text im JTextArea bearbeiten? Java Basics - Anfänger-Themen 2
D JTextArea Probleme !!! Brauche eure Hilfe Java Basics - Anfänger-Themen 2
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
O Jtextarea bzw jtextpane rechtsbündig oder blocksatz Java Basics - Anfänger-Themen 6
M Prob bei JTextArea auf .setEditable(false) setzen Java Basics - Anfänger-Themen 2
S JTextArea.ReplaceAll() schneidet Zeichen weg Java Basics - Anfänger-Themen 3
S JTextArea Problem mit Anzeige Java Basics - Anfänger-Themen 2
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
T JTextArea mit allen Formatierungen in eine Datei schreiben Java Basics - Anfänger-Themen 15
M Border um JTextArea? Java Basics - Anfänger-Themen 2
C Sonderzeichen (ä, ö, ü) in JTextArea Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben