Hallo zusammen,
nun ich habe ein kleines Programm geschrieben mit dem ich Daten aus Acces ziehe und in eine MySQL DB schiebe. Das Programm funktioniert soweit. Nur der ProgressBar noch nicht. Das heißt er wird erst zum Schluss aktualisiert. Ich habe auch schon das Problem in mehreren Foren gefunden. Es liegt daran das Swing nicht nachkommt. Die Lösung sollte sein, dass dann die Progressbar in einem Thread aktualisiert werden sollte.
Nun ich muss zugeben ich bin Anfänger. Ich behersche die Grundlagen. Nur mit Threads haben wir in der Schule nie was gemacht. Ich habe daher mal eine Lösung versucht zu entwickeln. Nur es klappt nicht. Hier mal ein Ausschnitt aus meinem Code:
So das ist ein Ausschnitt aus meinem Programm. Also ich habe einen Thread vor dem Eintritt in die while Schleife erzeugt. Mit progress_thread.run(Prozent);
übergebe ich in der Schleife den Satz der die Progressbar aktualisieren soll. Und in der Klasse Thread sollte eigentlich die Progressbar aktualisiert werden. Nur es nicht.
Was mache ich falsch?
Danke schon mal für eure Anworten
Gruß
Markus
nun ich habe ein kleines Programm geschrieben mit dem ich Daten aus Acces ziehe und in eine MySQL DB schiebe. Das Programm funktioniert soweit. Nur der ProgressBar noch nicht. Das heißt er wird erst zum Schluss aktualisiert. Ich habe auch schon das Problem in mehreren Foren gefunden. Es liegt daran das Swing nicht nachkommt. Die Lösung sollte sein, dass dann die Progressbar in einem Thread aktualisiert werden sollte.
Nun ich muss zugeben ich bin Anfänger. Ich behersche die Grundlagen. Nur mit Threads haben wir in der Schule nie was gemacht. Ich habe daher mal eine Lösung versucht zu entwickeln. Nur es klappt nicht. Hier mal ein Ausschnitt aus meinem Code:
PHP:
public class ThreadKlasse extends Thread {
public void run(Integer aktueller_prozentsatz) {
while(!isInterrupted()) {
JPuploadbar.setValue(aktueller_prozentsatz);
frame.repaint();
}
}
}
class Auswahl extends MouseAdapter
{
ThreadKlasse progress_thread=new ThreadKlasse();
progress_thread.start();
//Access Ergebnismenge in der Schleife abarbeiten und Insert auf MySQL machen
while (rs.next()) {
//Berechnen des Prozentwertes für Progressbar
Prozent = (int)((100 * progress_status) / clmCnt);
progress_thread.run(Prozent);
JPuploadbar.setStringPainted(true);
//Spalten namen Abfragen und ein Insert zusammen basteln.
for(Integer x=1;x<=clmCnt-1;x++)
{
sql_update=sql_update+rsmd.getColumnLabel(x)+", ";
}
sql_update=sql_update+rsmd.getColumnLabel(clmCnt);
sql_update=sql_update+") VALUES (";
//Werte für den Insertstring zusammenbasteln
for(Integer y=1;y<=clmCnt-1;y++)
{
sql_update=sql_update+"'"+rs.getString(y)+"',";
}
sql_update=sql_update+"'"+rs.getString(clmCnt)+"'";
sql_update=sql_update+");";
//Insert auf MYSQL durchführen
//sql_update=sql_update+rsmd.getColumnLabel(x)+"="+rs.getString(x)+",";
//System.out.println(sql_update);
mysql_stmt.executeUpdate(sql_update);
//Zurücksetzen des SQL Insertstrings
sql_update="INSERT INTO Ergebnisse (";
//Progress Status um eins inkrementieren
progress_status++;
}
//Progress Updater beenden
progress_thread.interrupt();
übergebe ich in der Schleife den Satz der die Progressbar aktualisieren soll. Und in der Klasse Thread sollte eigentlich die Progressbar aktualisiert werden. Nur es nicht.
Was mache ich falsch?
Danke schon mal für eure Anworten
Gruß
Markus
Zuletzt bearbeitet: