Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Vincular o progresso de uma consulta a uma progressProperty de uma ProgressBar para informar ao usuário o tempo de download e upload em javaFX?


Normalmente, isso é tão simples quanto carregando a imagem de um URL em segundo plano e acompanhando seu progresso vinculando o propriedade de progresso da barra de progresso para a propriedade de progresso de a imagem . Isso replicaria a funcionalidade do código Android que você postou com muito menos código.
ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());

A única coisa complicada aqui é que o código não Android que você postou não é o mesmo que o código Android em funcionalidade. Em vez de recuperar uma imagem de um URL, o código não Android está recuperando a imagem de um banco de dados.

Se você quiser monitorar o progresso da recuperação de imagens armazenadas em um banco de dados, precisará fazer algumas coisas extras:
  1. Em um campo adicional no banco de dados, armazene o tamanho da imagem.
  2. Armazene a própria imagem em um Blob no banco de dados.
  3. Recupere o tamanho total da imagem do banco de dados quando necessário.
  4. Recupere o Blob do banco de dados como um fluxo .
  5. Registrar um URL personalizado protocolo que é capaz de obter o fluxo de banco de dados e converter o fluxo em uma URL. (Alternativamente, você pode hospedar um servlet de aplicativo da web que faz a conversão e retorna os dados sobre http ).
  6. Agora você pode carregar a imagem em segundo plano usando seu protocolo de URL personalizado e monitorar seu progresso por meio de sua propriedade progress como antes.

Fazer o passo 5 é complicado e não vou escrever o código para fazê-lo aqui, pois criar esse código me levaria muito tempo.