Normalerweise ist dies so einfach wie Laden des Bildes von einer URL im Hintergrund und Verfolgen des Fortschritts durch Binden von progress-Eigenschaft des Fortschrittsbalkens zur Progress-Eigenschaft von das Bild . Das würde die Funktionalität des von Ihnen geposteten Android-Codes mit viel weniger Code replizieren.
ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());
Die einzige knifflige Sache hier ist, dass der Nicht-Android-Code, den Sie gepostet haben, nicht mit dem Android-Code in der Funktionalität identisch ist. Anstatt ein Bild von einer URL abzurufen, ruft der Nicht-Android-Code das Bild aus einer Datenbank ab.
Wenn Sie den Fortschritt des Abrufs von in einer Datenbank gespeicherten Bildern überwachen möchten, müssen Sie einige zusätzliche Dinge tun:
- In einem zusätzlichen Feld in der Datenbank hinterlegen Sie die Größe des Bildes.
- Speichern Sie das Bild selbst in einem Blob in der Datenbank.
- Die Gesamtgröße des Bildes bei Bedarf aus der Datenbank abrufen.
- Blob aus der Datenbank abrufen als Stream .
- Registrieren Sie eine benutzerdefinierte URL Protokoll der in der Lage ist, den Datenbankstream abzurufen und den Stream in eine URL umzuwandeln. (Alternativ könnten Sie ein Webanwendungs-Servlet hosten, das die Konvertierung durchführt und die Daten zurückgibt über http ).
- Jetzt können Sie das Bild mit Ihrem benutzerdefinierten URL-Protokoll im Hintergrund laden und seinen Fortschritt wie zuvor über seine Fortschrittseigenschaft überwachen.
Schritt 5 ist schwierig und ich werde den Code dafür hier nicht schreiben, da das Erstellen eines solchen Codes lange dauern würde.