Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Den Fortschritt einer Abfrage an eine progressProperty einer ProgressBar binden, um den Benutzer über die Download- und Upload-Zeit in JavaFX zu informieren?

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:

  1. In einem zusätzlichen Feld in der Datenbank hinterlegen Sie die Größe des Bildes.
  2. Speichern Sie das Bild selbst in einem Blob in der Datenbank.
  3. Die Gesamtgröße des Bildes bei Bedarf aus der Datenbank abrufen.
  4. Blob aus der Datenbank abrufen als Stream .
  5. 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 ).
  6. 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.