Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Java-Ladebalken-Problem

Diskussion: Java-Ladebalken-Problem im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo zusammen. Ich bin im Moment gerade an einem kleinen Programm zur Dateverschiebung dran. Es läuft alles und jetzt ...

Antwort
Alt 13.12.10, 10:21   #1 (permalink)
M@t
 
Benutzerbild von M@t
 
Registriert seit: 10.12.10
M@t Leistung: Facit NTK
Likes: 0
Standard Java-Ladebalken-Problem

Anzeige

Hallo zusammen.

Ich bin im Moment gerade an einem kleinen Programm zur Dateverschiebung dran. Es läuft alles und jetzt bin ich noch ein bisschen an der grafischen Umsetzung dran und hier steh ich vor einem Problem. Ich will einen Ladebalken einführen der Eingermassen genau den Fortschritt anzeigen sollte. Ich frage mich nun wie ich das anstellen soll. Ich verschiebe Bild-Dateien mit dem Input+Output Stream...

Hat jemand eine Idee wie man das am besten mit der JProgressBar lösen könnte ohne eine FakeBar mit einem Vorgegebenen Wert zu starten.

Ich hoffe hier hat es auch Java-Spezialisten

M@t ist offline   Mit Zitat antworten
Alt 13.12.10, 12:17   #2 (permalink)
Moderator
 
Benutzerbild von Tarantoga
 
Registriert seit: 11.02.06
Tarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga Quadcore
Likes: 229
Standard

Hi,
in Java stellt Swing die JProgressBar zur Verfügung um dem Benutzer ein Fortschritts-Feedback zu geben. Du könntest den Balken z. B. nach jeder verschobenen Datei aktualisieren...

Diese Links könnten vermutlich nützlich für Dich sein:
http://www.dpunkt.de/java/Programmie...ierung/44.html

http://download.oracle.com/javase/tu.../progress.html
Tarantoga ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 13.12.10, 13:40   #3 (permalink)
M@t
Themenstarter
 
Benutzerbild von M@t
 
Registriert seit: 10.12.10
M@t Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von Tarantoga Beitrag anzeigen
Hi,
in Java stellt Swing die JProgressBar zur Verfügung um dem Benutzer ein Fortschritts-Feedback zu geben. Du könntest den Balken z. B. nach jeder verschobenen Datei aktualisieren...

Diese Links könnten vermutlich nützlich für Dich sein:
http://www.dpunkt.de/java/Programmie...ierung/44.html

http://download.oracle.com/javase/tu.../progress.html
Das Problem ist, ich weiss nicht wieviel Dateien vorhanden, ausser ich lasse sie zählen, was aber wieder viel Performance braucht denke ich... Aber sonst gute idee
M@t ist offline   Mit Zitat antworten
Alt 13.12.10, 13:54   #4 (permalink)
Moderator
 
Benutzerbild von Tarantoga
 
Registriert seit: 11.02.06
Tarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga QuadcoreTarantoga Quadcore
Likes: 229
Standard

Zitat:
M@t:
Das Problem ist, ich weiss nicht wieviel Dateien vorhanden, ausser ich lasse sie zählen, was aber wieder viel Performance braucht denke ich... Aber sonst gute idee
Du kannst die ProgressBar auch im indeterminate mode nutzen (siehe 2. Link):
Zitat:
Sometimes you can't immediately determine the length of a long-running task, or the task might stay stuck at the same state of completion for a long time. You can show work without measurable progress by putting the progress bar in indeterminate mode. A progress bar in indeterminate mode displays animation to indicate that work is occurring. As soon as the progress bar can display more meaningful information, you should switch it back into its default, determinate mode. In the Java look and feel, indeterminate progress bars look like this:
Tarantoga ist offline   Mit Zitat antworten
Alt 13.12.10, 14:21   #5 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Na, das einmalige Abfragen der Dateigröße als Endwert kann ja wohl nicht das Problem sein, oder? Und für das Umkopieren kannst du einfach einen Puffer verwenden, über den du die bisher kopierte Datenmenge abfragen kannst.
Das langwierige beim umkopieren sind sowieso die I/O-Operationen, das bisschen Prozessorbelastung fällt da nicht ins Gewicht.
Probiers mal so:
Code:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

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


public class Copy {

	public static void main(String[] args) {
		
		JFrame wnd = new JFrame("Kopieren");
		wnd.setSize(300, 50);
		JProgressBar progress = new JProgressBar();
		wnd.add(progress);
		wnd.setLocationRelativeTo(null);
		wnd.setVisible(true);
		progress.setMaximum(1000);
		progress.setValue(0);
		progress.setIndeterminate(false);
		
		try {
			
			File source = new File("Demo.avi");
			long max = source.length();
			long copied = 0;
			
			BufferedInputStream strin = new BufferedInputStream(new FileInputStream("Demo.avi"));
			BufferedOutputStream strout = new BufferedOutputStream(new FileOutputStream("Destination.avi"));
			byte[] buffer = new byte[1024];
			int len;
			while((len = strin.read(buffer)) > -1) {
				strout.write(buffer, 0, len);
				
				// Progressbar
				copied += len;
				int promille = (int) (copied * 1000.0 / max);
				progress.setValue(promille);
			}
			
			strout.flush();
			strin.close();
			strout.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		wnd.dispose();
		
	}

}
mfg, metax.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Alt 13.12.10, 14:34   #6 (permalink)
M@t
Themenstarter
 
Benutzerbild von M@t
 
Registriert seit: 10.12.10
M@t Leistung: Facit NTK
Likes: 0
Standard

Vielen Dank für eure Lösungen. Ich habe es schon anders gelöst, aber ähnlich wie der letzte Beitrag
M@t ist offline   Mit Zitat antworten
Antwort

Stichworte
java, jprogressbar, ladebalken
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Java-Ladebalken-Problem
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61