# jProgressbar von einem Download



## Swobb (15. Mrz 2011)

Und noch ein Problem, das mich momentan sehr beschäftigt:

Ich möchte eine Datei aus dem Internet herunterladen, dafür benutze ich die *Download.java* von folgendem Beispiel Programm: How to create a download manager in Java

Jetzt möchte ich aber, das nachdem man in meinem Programm den "Download Button" gedrückt hat, ein kleines neues Fenster erscheint, in der eine Progressbar angezeigt wird, mit dem momentanen Status des Downloads. 

In dem oben erwähnten Beispiel Programm wird der Download-Status in einer extra jTable-Zeile angezeigt. Ich hab versucht dies ähnlich zu machen, nur halt wie schon gesagt, in einem neues Fenster. Doch leider hab ich das einfach nicht hinbekommen, weil ich den Teil mit der Progressbar in den Beispielprogramm einfach nicht richtig verstehe..

Hat jemand vielleicht eine Ahnung, wie man das realisieren könnte, das ein extra Fenster mit der Progressbar erscheint, die den aktuellen Downloadstatus für eine Datei anzeigt?


----------



## DanZ (15. Mrz 2011)

Ich denke dein Problem mit der ProgressBar ist, dass sie in dem Beispiel gleichzeitig ein TableCellRenderer ist. Sie kriegt also von der Tabelle den Auftrag: es gibt ein neuen Wert, stell ihn da. Den Teil musst du in deinem Fall direkt übernehmen. 
Du erstellst also eine JProgressBar und einen Observer in dem ActionListener oder der Action des Buttons und teilst der JProgressBar aus dem Observer heraus direkt den neuen Status mit:

```
...
public void actionPerformed(ActionEvent e) {
    Download download=new Download(url);
    final JProgressBar progressBar=new JProgressBar(0,100);
   download.addObserver(new Observer() {
   public void update(Observable o, Object arg) {
     progressBar.setValue((int) (download.getProgress());
   }
  }
}
```

Dann musst du noch ein neues Fenster erstellen, die ProgressBar hinzufügen und anzeigen


----------



## eRaaaa (16. Mrz 2011)

ich würde dort vermutlich dann direkt ein ProgressMonitorInputStream mit ProgressMonitor benutzen. Infos hier

Dann irgendwo in deinem Beispiel nach [c]stream = connection.getInputStream();[/c] einbauen


----------



## Swobb (16. Mrz 2011)

könntet ihr mir vielleicht einen beispielcode für das fenster mit der progressbar zeigen? ich hab ehrlich gesagt nicht die geringste Ahnung, wie ich die progressbar im neuen fenster zum "laufen" bekomme, sodass da dann angezeigt wird wieviel % vom download bereits abgeschlossen sind..


----------



## mjdv (16. Mrz 2011)

Wo genau sit denn dein Problem? Man hat dir ja shcon den Link zur Doku gegeben, dort ist das alles sehr genau erklärt 

Ich hab mal ne andere Frage, geht dies hier immer?

```
// Specify what portion of file to download
connection.setRequestProperty("Range",
                    "bytes=" + downloaded + "-");
```


----------



## Swobb (17. Mrz 2011)

Nochmal eine kleine Frage zu der oben erwähnten Download.java:

Was muss ich dort ändern, damit die Downloads nicht direkt im projekt ordner gespeichert werden, sondern im unterverzeichnis "test" ?


----------



## Swobb (21. Mrz 2011)

Okey, hab es mittlerweile hinbekommen, vielen Dank für die Hilfe 

Das Problem mit dem Verzeichnis habe ich jetzt so gelöst, das die Datei nach dem Downloaden in ein anderen Order verschoben wird.


----------

