Grundlegende unbestimmte Verwendung der JProgress-Leiste

Ich möchte einfach eine unbestimmte JProgressBar-Animation in der unteren linken Ecke meines Frames haben, wenn ein langer Download ausgeführt wird.

Ich habe viele Tutorials durchgesehen, von denen mir keines klar ist. Ich möchte es einfach animieren lassen, während die Datei im Hintergrund heruntergeladen wird. Bei jedem Versuch wird der Fortschrittsbalken erst animiertnach dem Der Download ist abgeschlossen.

Ich brauche Hilfe, um zu wissen, wo ich meinen download () -Aufruf platzieren soll.

<code>class MyFunClass extends JFrame {
  JProgressBar progressBar = new JProgressBar();

  public void buttonClicked() {
    progressBar.setVisible(true);
    progressBar.setIndeterminate(true);

    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        progressBar.setIndeterminate(true);
        progressBar.setVisible(true);

        // Do I do my download() in here??

    }});

    // Do download() here???
    progressBar.setVisible(false);
  }
}
</code>

Danke im Voraus!


Lösung

Bearbeiten: Für diejenigen, die in Zukunft ein ähnliches Problem wie ich haben, ist dies die grundlegende Lösung für ein grundlegendes Problem. Dies ist nicht mein Code wörtlich, aber eine allgemeine Skizze. InnerhalbbuttonClicked():

<code>public void buttonClicked() {
  class MyWorker extends SwingWorker(String, Object) {
     protected String doInBackground() {
       progressBar.setVisible(true);
       progressBar.setIndeterminate(true);

       // Do my downloading code
       return "Done."
     }

     protected void done() {
        progressBar.setVisible(false)
     }
  }

  new MyWorker().execute();

}
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage