Hallo liebe Java-Community!
habe ein kleines Problem mit meinem JProgressBar. Der aktuelle Status(z.B. 50%) wird leider nicht auf der GUI angezeigt, jedoch ist der Wert, den man über
bekommt, korrekt. Das Programm soll eine SQL-Dump-Datei herunterladen und der Status wie bereits gesagt auf der GUI angezeigt werden.
Was ist da nur los???
Hier ein kleiner Programmausschnitt:
Vielen Dank für eure Hilfe
Grüße
Olli123
habe ein kleines Problem mit meinem JProgressBar. Der aktuelle Status(z.B. 50%) wird leider nicht auf der GUI angezeigt, jedoch ist der Wert, den man über
Java:
JProgressBar.getValue()
Was ist da nur los???
Hier ein kleiner Programmausschnitt:
Java:
public void download() throws IllegalStateException, MalformedURLException,ProtocolException, IOException
{
try
{
final String url_str = "http://hier.steht.die.url" ;
FileOutputStream fos = new FileOutputStream("hier.steht.der.Dateiname");
URL url = new URL(url_str.replace(" ", "%20"));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();
int length = conn.getContentLength();
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK)
{
byte tmp_buffer[] = new byte[4096];
InputStream is = conn.getInputStream();
int n = 0;
int downloaded = 0;
// ab hier erfolgt der download mit buffer
while ((n = is.read(tmp_buffer)) > 0)
{
downloaded = downloaded + n;
System.out.println("downloaded" + downloaded);
fos.write(tmp_buffer, 0, n);
fos.flush();
// d ist die variable, die den Status der progressbar liefert(min 0, max 100)
int d = (int) downloaded * 100 / length;
System.out.println(d);
MeinprogrammView.progressBar.setValue(d);
}
}
else
{
throw new IllegalStateException("HTTP response: " + responseCode);
}
fos.close();
MeinprogrammView.progressBar.setValue(100);
// Mitteilung über erfolgreichen Download
JOptionPane.showMessageDialog(null, "Download der aktuellen Datenbank erfolgreich!","Datenbank Aktualisierung erfolgreich", JOptionPane.INFORMATION_MESSAGE);
}
// falls ein Fehler kommt, wird dieser hier abgefangen werden
catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Download der aktuellen Datenbank fehlgeschlagen","Datenbank Aktualisierung fehlgeschlagen", JOptionPane.OK_OPTION);
}
}
Vielen Dank für eure Hilfe
Grüße
Olli123
Zuletzt bearbeitet: