Java FX ProgressIndicator

Java

20/01/2016

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

Curtidas 0

Respostas

Ronaldo Filho

Ronaldo Filho

20/01/2016

Grande boa tarde,

Posta teu código da classe pra que seja mais fácil de entender.
GOSTEI 0
Edson Venancio

Edson Venancio

20/01/2016

Voce teria que usa uma Thread cara ..
GOSTEI 0
Luis Calegari

Luis Calegari

20/01/2016

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);
        }
    }
GOSTEI 0
POSTAR