Normalt är detta så enkelt som laddar in bilden från en url i bakgrunden och spåra dess framsteg genom att binda progress-egenskapen för förloppsindikatorn till progress-egenskapen för bilden . Det skulle replikera funktionen hos Android-koden du postade med mycket mindre kod.
ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());
Det enda knepiga här är att den icke-Android-koden du postade inte är densamma som Android-koden i funktionalitet. Istället för att hämta en bild från en URL, hämtar icke-Android-koden bilden från en databas.
Om du vill övervaka framstegen för hämtning av bilder lagrade i en databas, måste du göra några extra saker:
- I ett extra fält i databasen lagrar du bildens storlek.
- Lagra själva bilden i en blob i databasen.
- Hämta bildens totala storlek från databasen vid behov.
- Hämta Blob från databasen som en ström .
- Registrera en anpassad webbadress protokoll som kan hämta databasströmmen och konvertera strömmen till en URL. (Alternativt kan du vara värd för en webbapplikationsservlet som gör omvandlingen och returnerar data över http ).
- Nu kan du ladda bilden i bakgrunden med ditt anpassade URL-protokoll och övervaka dess framsteg via dess progress-egenskap som tidigare.
Att göra steg 5 är knepigt och jag kommer inte att skriva koden för att göra det här eftersom det skulle ta lång tid att skapa en sådan kod.