jProgressBar mit while nicht for

Status
Nicht offen für weitere Antworten.

Big Apple

Aktives Mitglied
Hallo,

ich brauche eine jProgressBar die mit einer while schleife funktioniert.
Sie soll den Fortschritt anzeigen beim Kopieren einer Datei.
Hier der Code den ich versucht habe:
Code:
jProBarFortschritt.setMaximum((int) zuKopierendeDatei.length());
while (kopierteDatei.length() < zuKopierendeDatei.length()) {
    kopierteDatei.write(zuKopierendeDatei.read());
    jProBarFortschritt.setValue((int) kopierteDatei.length());
}

Das Funktioniert aber leider nicht, wie ich nun vermute werdet ihr sagen das da ein Thread fehlt, ok, aber wie soll ich den da einbauen?

Schon mal danke

Viele Grüße

Big Apple
 

Big Apple

Aktives Mitglied
Also es wird nicht erneuert, was so viel heißt dass es erst auf 0, dann, wenn die datei Fertig übertragen ist, auf 100% ist, nichts dazuwischen.
 
G

Guest

Gast
Ich weiß ja nicht was bei dir kopierteDatei ist und was zuKopierende Datei ist. Aber bei mir funktioniert folgendes programm problemlos. Zum Ausprobieren lediglich 2 Dateinamen eingeben.

Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JProgressBar;


public class Fenster extends JFrame {
	private final String DATEINAME_ORIGINAL="";
	private final String DATEINAME_KOPIE="";
	JProgressBar probar;
	public Fenster() throws IOException{
		this.setSize(400, 300);
		probar = new JProgressBar();
		probar.setStringPainted(true);
		this.add(probar);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.doAction();
	}
	
private void doAction() throws IOException {
	File zuKopierendeDatei = new File(DATEINAME_ORIGINAL);
	BufferedReader reader = new BufferedReader(new FileReader(zuKopierendeDatei));
	this.probar.setMaximum((int) zuKopierendeDatei.length());
	File kopierteDatei = new File(DATEINAME_KOPIE);
	FileWriter writer = new FileWriter(kopierteDatei);
	while (reader.ready()) {
	    writer.write(reader.read());
	    probar.setValue((int) kopierteDatei.length());
	}
        writer.close();
		
		
	}

public static void main(String[] args) {
	try {
		Fenster fenster = new Fenster();
	} catch (IOException e) {
		e.printStackTrace();
	}
}
}
 

Big Apple

Aktives Mitglied
Danke das geht jetzt, vorher habe ich das mit zwei RandomAccessFiles gemacht.
Allerdings springt der nun immer von 0% auf zum Beispiel 78% und hängt dann, was heißt dass die Datei weder weiterkopiert wird, noch erhöt sich der Wer der ProgressBar.
 

Big Apple

Aktives Mitglied
Code:
		try {
			BufferedReader reader = new BufferedReader(new FileReader(fileZuKopieren));
			File fileKopiert = new File(fileNeuerPfad + fileZuKopieren.getName());
			FileWriter writer = new FileWriter(fileKopiert);
			while (reader.ready()) {
				writer.write(reader.read());
			}
			writer.close();

		} catch (Exception f) {
		}

So sieht das nun bei mir aus un es geht nicht. An den Datein kann es nicht liegen.
 
G

Gast

Gast
ein biserl mehr code könnte es schon sein.
Wird die Datei komplett kopiert?

Wie groß sind die Dateien?

Das es Sprünge (o% dann 78%) gibt ist normal.
Für die Gui wird ein neuer Thread gestartet, wenn sich jetzt etwas an der Gui sprich JProgressbar etwas ändert, wird das erst aktualisiert, wenn der Thread für die Gui drankommt. Und dann kann es sein das der Kopiervorgang schon etwas weiter fortgeschritten ist. Bei großen Dateien 1MB z.B. da sieht man dann schon etwas mehr, als nur bei 1kb.

Im angegebenen Code-Schnipsel wird auch kein aktueller Wert an die ProgressBar weitergegeben.
 

Big Apple

Aktives Mitglied
Der Fehler mit dem Datei kopieren war meiner, ich habe ein "/" vergessen. Nun werden die Datein komplett und fehlerfrei kopiert.

Also ich habe das mit 3 "verschidenen" größen probiert, eine Datei mit 6KB, mit 3MB und 101MB.
Immer das gleiche, immer alles funktioniert mit Datei kopieren, die ProgressBar wurde allerdings erst gesetzt wenn die Datei fertig kopiert wurde. Dann wieder auf 89% oder änliches.
 
G

Guest

Gast
Big Apple hat gesagt.:
Der Fehler mit dem Datei kopieren war meiner, ich habe ein "/" vergessen. Nun werden die Datein komplett und fehlerfrei kopiert.

Also ich habe das mit 3 "verschidenen" größen probiert, eine Datei mit 6KB, mit 3MB und 101MB.
Immer das gleiche, immer alles funktioniert mit Datei kopieren, die ProgressBar wurde allerdings erst gesetzt wenn die Datei fertig kopiert wurde. Dann wieder auf 89% oder änliches.

Du musst das Aktualisieren deiner ProgressBar auch in einem eigenen Thread laufen lassen, sonst kommt sich die Anzeige immer mit dem Kopieren in den weg.
 
G

Guest

Gast
Also ich habe das jetzt so gemacht, kommt mir aber so vor als wäre es recht langsam:

Code:
				new Thread(new Runnable() {
					public void run() {
						File datei = null;

						JFileChooser dateiChooser = new JFileChooser();
						dateiChooser
								.setDialogTitle("Zu kopierende Datei(n) auswählen");
						dateiChooser.setMultiSelectionEnabled(true);
						dateiChooser
								.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

						if (dateiChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
							datei = dateiChooser.getSelectedFile();
						}

						try {
							jProBar1.setMaximum((int) datei.length());
							BufferedReader reader = new BufferedReader(
									new FileReader(datei));

							final File kopie = new File("/Users/PSpooren/Java/"
									+ datei.getName());
							FileWriter writer = new FileWriter(kopie);
							while (reader.ready()) {
								writer.write(reader.read());
								jProBar1.setValue((int) kopie.length());

							}
							jProBar1.setValue((int) datei.length());
							writer.close();

						} catch (Exception ex) {
							System.out.println("Fehler bei kopieren");
						}
					}
				}).start();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
S Thread.sleep mit JProgressBar Java Basics - Anfänger-Themen 1
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
E jProgressBar auf 0 stellen Java Basics - Anfänger-Themen 1
E JProgressbar Java Basics - Anfänger-Themen 8
M JProgressBar wird nicht richtig angezeigt Java Basics - Anfänger-Themen 8
S JProgressbar mit individuellem Start/Endpunkt Java Basics - Anfänger-Themen 11
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
S JProgressBar richtig anwenden Java Basics - Anfänger-Themen 27
N JProgressBar Java Basics - Anfänger-Themen 8
K Threads jProgressBar update Java Basics - Anfänger-Themen 14
J JProgressBar - wird nicht geupdated Java Basics - Anfänger-Themen 3
H JProgressBar wird nicht aktualisiert Java Basics - Anfänger-Themen 7
S jProgressBar läuft nicht! Java Basics - Anfänger-Themen 13
H Aktualisierung des JProgressBar in Abhängigkeit eines Threads Java Basics - Anfänger-Themen 5
Y jprogressbar beenden? Java Basics - Anfänger-Themen 4
L JProgressBar für FileUpload Java Basics - Anfänger-Themen 3
B Pseudo JProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar - XP style Java Basics - Anfänger-Themen 4
G JProgressBar während dem ausführen einer Funktion Java Basics - Anfänger-Themen 3
S jProgressBar Java Basics - Anfänger-Themen 3
G JProgressBar Java Basics - Anfänger-Themen 2
G JProgressBar#2 Java Basics - Anfänger-Themen 2
G JProgressBar Java Basics - Anfänger-Themen 7
G jProgressBar value aus anderer Klasse heraus verändern Java Basics - Anfänger-Themen 7
K JProgressbar, zur laufzeit steuern Java Basics - Anfänger-Themen 7
V JProgressBar anklickbar? Java Basics - Anfänger-Themen 2
A Timer + JProgressBar Java Basics - Anfänger-Themen 4
G in JProgressBar Fortschritt anzeigen Java Basics - Anfänger-Themen 8
P JDialog & JProgressBar Java Basics - Anfänger-Themen 2
Z Problem mit JProgressBar Java Basics - Anfänger-Themen 4
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben