Mysql
 sql >> Database >  >> RDS >> Mysql

Associare lo stato di avanzamento di una query a una progressProperty di una ProgressBar per informare l'utente del tempo di download e caricamento in javaFX?

Normalmente questo è semplice come caricare l'immagine da un URL in background e monitora i suoi progressi vincolando il progress della barra di avanzamento alla progress di l'immagine . Ciò replicherebbe la funzionalità del codice Android che hai pubblicato con molto meno codice.

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

L'unica cosa complicata qui è che il codice non Android che hai pubblicato non è lo stesso del codice Android in termini di funzionalità. Invece di recuperare un'immagine da un URL, il codice non Android recupera l'immagine da un database.

Se vuoi monitorare l'avanzamento del recupero delle immagini archiviate in un database, devi fare alcune cose extra:

  1. In un campo aggiuntivo nel database memorizza la dimensione dell'immagine.
  2. Memorizza l'immagine stessa in un BLOB nel database.
  3. Recupera la dimensione totale dell'immagine dal database quando richiesto.
  4. Recupera il BLOB dal database come stream .
  5. Registra un URL personalizzato protocollo che è in grado di ottenere il flusso del database e convertire il flusso in un URL. (In alternativa potresti ospitare un servlet di un'applicazione web che esegue la conversione e restituisce i dati su http ).
  6. Ora puoi caricare l'immagine in background utilizzando il tuo protocollo URL personalizzato e monitorarne l'avanzamento tramite la sua proprietà progress come prima.

Fare il passaggio 5 è complicato e non scriverò il codice per farlo qui poiché la creazione di tale codice mi richiederebbe molto tempo.