Mysql
 sql >> Base de données >  >> RDS >> Mysql

Lier la progression d'une requête à une progressProperty d'une ProgressBar pour informer l'utilisateur du temps de téléchargement et de téléchargement dans javaFX ?

Normalement, c'est aussi simple que charger l'image depuis une url en arrière-plan et suivre sa progression en liant le propriété progress de la barre de progression à la propriété progress de l'image . Cela reproduirait la fonctionnalité du code Android que vous avez publié avec beaucoup moins de code.

ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());

La seule chose délicate ici est que le code non-Android que vous avez publié n'est pas le même que le code Android dans la fonctionnalité. Au lieu de récupérer une image à partir d'une URL, le code non-Android récupère l'image à partir d'une base de données.

Si vous souhaitez surveiller la progression de la récupération des images stockées dans une base de données, vous devez effectuer quelques opérations supplémentaires :

  1. Dans un champ supplémentaire de la base de données, stockez la taille de l'image.
  2. Stocker l'image elle-même dans un Blob dans la base de données.
  3. Récupérez la taille totale de l'image à partir de la base de données si nécessaire.
  4. Récupérer le Blob de la base de données en flux .
  5. Enregistrer une URL personnalisée protocole qui est capable d'obtenir le flux de la base de données et de convertir le flux en URL. (Vous pouvez également héberger un servlet d'application Web qui effectue la conversion et renvoie les données sur http ).
  6. Vous pouvez maintenant charger l'image en arrière-plan à l'aide de votre protocole d'URL personnalisé et surveiller sa progression via sa propriété progress comme auparavant.

Faire l'étape 5 est délicat et je n'écrirai pas le code pour le faire ici car la création d'un tel code me prendrait beaucoup de temps.