Threads Im Dialog geöffneter Thread zeichnet nicht

phiLue

Mitglied
Moin zusammen,

muss mich leider wieder mit einem Problem melden :eek:
Ich habe eine kleine Anwendung geschrieben welche mir ein paar Datein durchgeht und da dies ein wenig länger dauern kann hab ich mir einen Dialog samt ProgressBar zusammengebaut.

Diesen Dialog will ich nun in einem extra Thread starten und das funktioniert auch. Was nicht funktioniert ist, das die Komponenten in diesem Dialog gezeigt werden.

Hier der Code wie ich den Dialog aufrufe.
Java:
final ProgressDialog 	dlg = new ProgressDialog(null);
						
						Thread t = new Thread(new Runnable() {
						      public void run() {
						        dlg.setVisible(true);
						      }
						    });
						t.start();

Nachdem ich diesen Thread gestartet habe, arbeite ich die Dateien durch und schließe den Dialog wieder indem ich einfach dlg.setVisible(false); aufrufe. Wenn ich den Dialog nicht schließe bleibt er offen und die Komponenten werden gezeichnet sobald er die Daten durchgearbeitet hat. Sollte genau sowas nicht verhindert werden durch einen Thread?

Vielleicht kann mir hier einer helfen :)
 
S

SlaterB

Gast
schwer was in den verklausulierten Sätzen zu lesen,
ich vermute, dein Problem ist, dass erst 'am Ende' etwas zu sehen ist?
genau dieser Prozess, dieses Erstellen der Komponenten, muss in einen Thread, nicht der setVisible(true)-Aufruf

aber ziemlich vage ohne Beschreibung z.B. dieser Komponentenerzeugung, das Zusammenspiel aller beteiligten Threads/ Listener-Methoden usw.
 

xehpuk

Top Contributor
Hi,

dein Thread ist momentan sinnlos, sogar falsch.

Nachdem ich diesen Thread gestartet habe, arbeite ich die Dateien durch
Den Dialog erstellen und anzeigen solltest du ganz normal im EDT.
Die Aufgabe mit den Dateien musst du in einem weiteren Thread erledigen. Und von dort aus lässt du den Fortschritt aktualisieren (jedoch im EDT).
Momentan führst du die Aufgabe wohl im EDT aus (lässt sich dem Code-Ausschnitt nicht entnehmen). Dadurch wird dieser für Zeichenaufgaben blockiert.

Das ist aber schon ein wenig low-level, was du da machst. Du erfindest das Rad neu.
Ganz high-level löst du das mit [JAPI]javax.swing.ProgressMonitor[/JAPI]: How to Use Progress Monitors (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Noch high-level wäre die Nutzung von [JAPI]javax.swing.SwingWorker[/JAPI]: Worker Threads and SwingWorker (The Java™ Tutorials > Creating a GUI With JFC/Swing > Concurrency in Swing)

Am besten schaust du dir aber das ganze Kapitel über Nebenläufigkeit in Swing an (dort dann auch die Erklärung des EDT): Lesson: Concurrency in Swing (The Java™ Tutorials > Creating a GUI With JFC/Swing)
 

phiLue

Mitglied
@xehpuk
Argh, genau das war mein Problem :D
Vielen Dank auf jeden Fall, damit hat sich das jetzt zum Glück gelöst :)

Kannte Thread-Programmierung bisher nur vom Android und da gibt es diese schöne AsyncTask Klasse die das ganze ziemlich einfach macht.

Danke nochmal auch an die anderen die mir bei der Lösung des Problems geholfen haben und entschuldigt für die schlechte Beschreibung meines Problems u.u
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
F Dialog wird nach Schließung neu geöffnet Java Basics - Anfänger-Themen 4
A Dialog schließt erst nach 2x Klicken auf Schließen Java Basics - Anfänger-Themen 2
G Dialog Java Basics - Anfänger-Themen 2
T requestFocus() nach modalem Dialog Java Basics - Anfänger-Themen 3
J Über ... Dialog (Mac OS) Java Basics - Anfänger-Themen 8
B Bestimmungspfad im Dialog auswaehlen Java Basics - Anfänger-Themen 9
S Dialog im Thread Java Basics - Anfänger-Themen 2
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
D Eingabe aus Dialog, Ergebnis an Panel Java Basics - Anfänger-Themen 2
H customized dialog Java Basics - Anfänger-Themen 2
C Felder im Dialog zurücksetzen Java Basics - Anfänger-Themen 3
J SWT / Datei-Öffnen Dialog Java Basics - Anfänger-Themen 2
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
jnoob Checkbox in Dialog Dynamisch erstellen Java Basics - Anfänger-Themen 2
H Internes Dialog im Programm Java Basics - Anfänger-Themen 15
Q Wie öffne ich einen "Speichern unter" - Dialog? Java Basics - Anfänger-Themen 2
G Button soll Speicher Dialog aufrufen Java Basics - Anfänger-Themen 10
D dialog listener? Java Basics - Anfänger-Themen 2
F Vom Dialog zum Hauptframe Java Basics - Anfänger-Themen 3
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
G Controls einem Dialog uebergeben Java Basics - Anfänger-Themen 4
M Dialog im undecorated Fullscreen Java Basics - Anfänger-Themen 2
M JOptionPane - Dialog Java Basics - Anfänger-Themen 6
G Dialog soll nicht in Vordergrund springen Java Basics - Anfänger-Themen 13
I Dialog - "Ja" / "Nein" abfangen Java Basics - Anfänger-Themen 3
I SaveFile Dialog - wie realisieren ? Java Basics - Anfänger-Themen 4
G Dialog wird nicht angezeigt Java Basics - Anfänger-Themen 3
J Dateiöffnen-Dialog und einlesen Java Basics - Anfänger-Themen 6
K SourceFolder Dialog Java Basics - Anfänger-Themen 8
Bernasconi Dialog und Fenster Liste? Java Basics - Anfänger-Themen 10
V Text aus Dialog auslesen. Java Basics - Anfänger-Themen 3
E "Datei öffnen"-Dialog Java Basics - Anfänger-Themen 2
M Dialog aus Menü aufrufen Java Basics - Anfänger-Themen 13
K Probleme mit AWT Dialog Java Basics - Anfänger-Themen 8
5 File->Open Dialog mit nachheriger Aktion ausführen. Java Basics - Anfänger-Themen 3
G Schrift-Auswahl-Dialog? Java Basics - Anfänger-Themen 6
M JFileChooser Überschreiben Dialog? Java Basics - Anfänger-Themen 2
C Dialog immer vor Hauptfenster anzeigen Java Basics - Anfänger-Themen 9
T Wie öffne ich einen Dialog? Java Basics - Anfänger-Themen 3
D Dialog mit eigenem Bild Java Basics - Anfänger-Themen 7
F Dialog mit allen verfügbaren Druckern Java Basics - Anfänger-Themen 2
G Input Dialog Problem Java Basics - Anfänger-Themen 11
F Dialog zum Durchsuchen von Verzeichnissen nach Datei Java Basics - Anfänger-Themen 11
V List mit Dialog Java Basics - Anfänger-Themen 3
V Ein Fenster durch Menu-Dialog schliessen Java Basics - Anfänger-Themen 2
I Dialog Fenster anzeigen lassen. Java Basics - Anfänger-Themen 2
A Tabulator in Dialog Java Basics - Anfänger-Themen 2
P Funktion einer anderen Klasse aus einem Dialog aufrufen Java Basics - Anfänger-Themen 8
G Dialog-Problem Java Basics - Anfänger-Themen 6
G Logging-Ausgabe in einem Dialog Java Basics - Anfänger-Themen 2
DEvent modaler dialog: showmodal ? Java Basics - Anfänger-Themen 4
EagleEye Dialog Java Basics - Anfänger-Themen 2
M Ändern einer Socket-Eigenscheft aus einem modalen Dialog? Java Basics - Anfänger-Themen 6
A BufferedReader mit geöffneter Datei Java Basics - Anfänger-Themen 4
Leyla Thread isInterrupt Java Basics - Anfänger-Themen 18
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
F influxdb Upload in eigenem Thread Java Basics - Anfänger-Themen 2
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
A Thread - Synchronized Java Basics - Anfänger-Themen 10
A Thread Producer - Consumer Java Basics - Anfänger-Themen 1
A Thread-Semhapore Java Basics - Anfänger-Themen 0
A Thread Exchanger Java Basics - Anfänger-Themen 22
A Thread-Cyclicbarrier Java Basics - Anfänger-Themen 4
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Thread-Verklemmung Java Basics - Anfänger-Themen 10
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
A Thread find number Java Basics - Anfänger-Themen 8
F Thread.sleep() Java Basics - Anfänger-Themen 5
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 3
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
A Thread Java Basics - Anfänger-Themen 8
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
M Thread-Zustände Java Basics - Anfänger-Themen 6
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 1
D Java Thread wartet nur ein mal Java Basics - Anfänger-Themen 0
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
C Thread und TimerTask, Verstädnisproblem Java Basics - Anfänger-Themen 10
amgadalghabra Sorting Thread Launcher Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
A Thread Java Basics - Anfänger-Themen 4
A Thread Java Basics - Anfänger-Themen 1
A Thread Java Basics - Anfänger-Themen 0
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
B Thread / Prozess stoppen? Java Basics - Anfänger-Themen 22
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 0
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben