Java FX ProgressIndicator

20/01/2016

0

Pessoal estou precisando uma ajuda com esse JavaFX aqui...

No caso eu tenho um tela criada com SceneBuilder com ProgressIndicator e estou executando um processo que demora alguns menitos, gostaria de saber como faço para ele atualize a tela a cada iteração da minha repetição.

Exemplo:

For(int i = 0; i < 100; i++) {
ProgressIndicator.setProgress(i);
atualizaTela();
}
Luis Calegari

Luis Calegari

Responder

Posts

20/01/2016

Ronaldo Filho

Grande boa tarde,

Posta teu código da classe pra que seja mais fácil de entender.
Responder

20/01/2016

Edson Venancio

Voce teria que usa uma Thread cara ..
Responder

21/01/2016

Luis Calegari

Arquivo FXML
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>


<AnchorPane id="AnchorPane" prefHeight="249.0" prefWidth="238.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40" fx:controller="javafxapplication1.FXMLController">
   <children>
      <ProgressIndicator fx:id="pi" layoutY="14.0" prefHeight="166.0" prefWidth="238.0" progress="0.0" />
      <Button fx:id="btn" layoutX="88.0" layoutY="209.0" mnemonicParsing="false" onAction="#btnOnClick" text="Button" />
   </children>
</AnchorPane>


Controlador

    @FXML
    private ProgressIndicator pi;
    @FXML
    private Button btn;

    @FXML
    private void btnOnClick(ActionEvent event) {
        pi.setMaxWidth(100);
        for (int i = 0; i < 100; i++) {
            pi.setProgress(pi.getProgress() + 1);
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                System.out.println(e.getLocalizedMessage());
            }
            System.out.println("Contador: " + i);
        }
    }
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar