JProgressBar wird nicht mehr aktualisiert

  • Themenstarter Themenstarter Louis2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

mein Programm verschickt x mails. Nun habe ich um zu beobachten wieviele mails verschickt sind, welche mail verschickt wird eine JProgressBar eingebaut.
Aber irgendwie wird sie nicht richtig aktualisiert, nehmen wir mal an ich verschicke 11 mails. Alle 11 mails werden auch verschickt und kommen bei mir auch an, aber der Balken stoppt bei 2,3,10 oder sonst also irgendwie gibt es Speicher/Performance Probleme?? auf jeden Fall wird der Status nicht richtig angezeigt, woran liegt es?
Ich habe auch festgestellt, dass wenn der Balken voll ist wieder von vorne angefangen wird?? Und dann halt Stop.

Und gleich die nächste Frage, kann man den Balken auf mit % machen? Ich meine falls ich 10000 mails verschicke, da wird der Balken durch kleine Teile gefüllt, ist doch irgendwie blöd oder? Besser %, z.b wenn 10% abgeschlossen sind, ein Stück vom Balken usw... kann mir jemand helfen?

Mein Code: (len = Zeilenanzahl in eine JTable)
Code:
for (int i=0; i<=len1; i++)
{
    .
    .
    final int j=i;
    Runnable r = new Runnable()
    {
        public void run()
        {
            try
            {
                Transport.send(msg);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            SwingUtilities.invokeLater( new Runnable()
            {
                public void run()
                {
                    bar.setVisible(true);
                    bar.setValue(j+1);
                    valueProg.setText((j+1) + " of " + len);
                }
            } );
        }
    };
    Thread t = new Thread(r);
    t.start();
 
Also ich habe noch eine FOR-Schleife für die Zahlen der JProgressBar eingefügt und nun geht es. Ich vermute mal, dass vorher das Programm mit dem der Zeilen in der JTable nicht klargekommen ist, da es mit SWING wohl irgendwie zusammenhing, kann es sein?

Nun sieht der Code wie folgt aus
Code:
Runnable r = new Runnable()
{
    public void run()
    {
        for ( int i = 1; i <= len; i++ )
        {
            try
            {
                Transport.send(msg);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            final int j=i;
                                   
            SwingUtilities.invokeLater( new Runnable()
            {
                public void run()
                {
                    bar.setValue(j);
                    valueProg.setText((j) + " of " + len);
	}
            } );
        }
    }
};
Thread t = new Thread(r);
t.start();
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben