2
respostas

view de carregamento

Estou construindo um sisteminha em javafx, mas acredito que a duvida se aplica a outras plataformas. E preciso que ao carregar um loop de inserir registro um a um no banco de dados de um updateProgress por registro. Segue um exemplo para facilitar


public class Progress3 extends Application {

    @Override
    public void start(Stage primaryStage) {
        ProgressBar barra = new ProgressBar();
        Label status = new Label("Novo");

            Service<Void> servico = new Service() {
                @Override
                protected Task createTask() {
                    return new Task() {
                        @Override
                        protected Void call() throws Exception {
                            //Task tem duas property interessantes para usar junto a um ProgressBar
                            //a messageProperty, que pode ser ligada a outra StringProperty
                            //para transmitir uma mensagem,
                            //e a progressProperty, que serve para mandar valores númericos a uma
                            //ProgressBar ou ProgressIndicator
                            updateMessage("Carregando...");
                            Thread.sleep(300);
                            updateProgress(1, 10);
                            for (int i = 0; i < 10; i++) {
// não consigo dar this.insertRegistro aqui
                                updateProgress(i + 1, 10); 
                                updateMessage("Carregando " + (i + 1) + " de 10");
                                Thread.sleep(300);
                            }
                            updateMessage("Terminou");
                            return null;
                        }
                    };
                }
            };
            //fazendo o bind (ligando) nas proprety
            status.textProperty().bind(servico.messageProperty());
            barra.progressProperty().bind(servico.progressProperty());
            //precisa inicializar o Service
            servico.restart();

        //criando um ui para exemplificar o uso do ProgressBar
        VBox root = new VBox();
        root.setAlignment(Pos.CENTER);
        root.getChildren().addAll(status, barra);

        Scene scene = new Scene(root, 150, 50);

        primaryStage.setTitle("Progress Bar!");
        primaryStage.initStyle(StageStyle.UTILITY);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
2 respostas

Bom dia Antonio, não entendi muito bem a dúvida

Então eu preciso colocar uma barra de carregamento na hora que o banco de dados estiver inserindo registros um a um. Coloquei um exemplo que peguei da internet e funciona bem, porém não consigo adaptá-lo a minha necessidade.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software