Base De Durée Indéterminée JProgress Bar De L'Utilisation

Je veux simplement avoir une durée indéterminée JProgressBar animer dans le coin en bas à gauche de mon image quand un long téléchargement est terminé.

J'ai regardé à travers de nombreux tutoriels, aucun n'est clair pour moi. Je veux simplement avoir animer alors que le fichier est téléchargé en arrière-plan. Chaque façon j'ai essayé cela, il n'a pas d'animer la barre de progression jusqu' après le téléchargement est terminé.

J'ai besoin d'aide pour savoir où placer mon appel de download ().

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);
  }
}

Merci d'avance!


Solution

Edit: Pour ceux qui ont un problème similaire pour moi dans l'avenir, c'est la solution de base pour un problème de base. Ce n'est pas mon code, mot à mot, mais un croquis. À l'intérieur de buttonClicked():

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();

}
  • Vous devriez jeter un oeil à docs.oracle.com/javase/tutorial/uiswing/components/..., même s'il semble compliqué. Ce que vous devez faire est de lancer le téléchargement dans un autre thread (backgroundworker). Puis la main (gui) filetage de la barre de l'animation. La façon dont vous le faites est en fait l'inverse.
  • Merci de voir Edit 2 pour ma réponse à crrect certains problèmes.
InformationsquelleAutor Bill VB | 2012-05-04