Wie die Progress-Bar in Java (Netbeans GUI)
Ich bin nicht so erfahren mit Java und habe Probleme damit, eine Fortschritt-bar zu arbeiten. Ich bin mit Netbeans " built-in GUI-maker. Derzeit mein Programm liest Bilder aus einem Verzeichnis in ein image-array. Offensichtlich ist dies dauert ein wenig Zeit, damit möchte ich eine einfache Fortschrittsanzeige zu aktualisieren, die der Benutzer wissen, wie weit der laden ist. Ich habe einen von denen per drag-and-drop-Fortschrittsbalken-Komponenten.
Ich derzeit bekommen kann die Anzahl der Dateien in einem Verzeichnis und können, berechnen Sie den Prozentsatz der geladenen Dateien
-Die Dateien erfolgreich laden in das array, aber der Fortschrittsbalken wird erst aktualisiert, nachdem alle Dateien geladen sind. Ich habe versucht es erneut validieren und die Bildschirmaktualisierung während ich Schleife, aber das funktioniert nicht
-Ich habe versucht, die verschiedenen tutorials auf Google docs.oracle kann aber nicht scheinen, um alles zu erhalten zu arbeiten.
-Ich glaube, SwingWorker-Klasse ist der ich mit sollte, ist das richtig?
Jede Hilfe mit einem Beispiel oder einige Ratschläge würde sehr geschätzt werden!
Danke!
InformationsquelleAutor Matthew Mills | 2012-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie laufen in die Falle, alle neue Swing Programmierer - die Event-Dispatching-Thread
Im Grunde genommen, diese
Thread
ist das Herz eines jeden Swing-system. Ist verantwortlich für die Verteilung der Veranstaltungen auf alle UI-Komponenten, sowie die Anforderungen an die repaint-manager zum aktualisieren der Benutzeroberfläche.Wenn Sie eine zeitaufwändige Aufgaben, während in der
EDT
Sie verhindern, dass die Benutzeroberfläche wurde aktualisiert.Ich würde vorschlagen, Sie beginnen, indem er einen Lesevorgang durch Worker Threads and SwingWorker und Concurrency in Swing und, weil ich weiß, dass Sie jetzt Fragen haben, Lesen Sie diese Antwort, es hat eine Reihe von Beispielen der Verwendung von
SwingWorker
, JTextArea Anhängen ProblemeInformationsquelleAutor MadProgrammer