Hallo
Ich schreibe im Moment einen Email Client und wollte für die Übertragen der Mails eine Anzeige machen. Dafür bin ich auf den ProgressMonitor gestoßen.
Nun habe ich ein Programm gefunden das für die Zeit eines Timers der ProgressMonitor funktioniert.
Ersetze ich nun den Timer durch eine Methode erfolgt nur die Ausgabe der Zahlen aber es wird kein ProgressMonitor angezeigt... :
Ich schreibe im Moment einen Email Client und wollte für die Übertragen der Mails eine Anzeige machen. Dafür bin ich auf den ProgressMonitor gestoßen.
Nun habe ich ein Programm gefunden das für die Zeit eines Timers der ProgressMonitor funktioniert.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Senden extends JFrame implements ActionListener {
static ProgressMonitor ProgressMonitor;
static int counter = 0;
public Senden () {
ProgressMonitor = new ProgressMonitor(null, "Status","Initializing . . .", 0,100);
Timer timer = new Timer(50, this);
timer.start();
}
public static void main(String args[]) {
UIManager.put("ProgressMonitor.progressText", "Senden....");
UIManager.put("OptionPane.cancelButtonText", "Abbruch");
new Senden ();
}
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Update());
}
class Update implements Runnable {
public void run() {
if (ProgressMonitor.isCanceled()) {
ProgressMonitor.close();
System.exit(1);
}
ProgressMonitor.setProgress(counter);
ProgressMonitor.setNote("Senden: "+counter+"% gesendet");
counter += 2;
}
}
}
Ersetze ich nun den Timer durch eine Methode erfolgt nur die Ausgabe der Zahlen aber es wird kein ProgressMonitor angezeigt... :
Java:
public Senden () {
ProgressMonitor = new ProgressMonitor(null, "Status","Initializing . . .", 0, 100);
Teste();
}
public void Teste(){
for(int i = 0;i<10000000; i++){
System.out.println(i);
}
}