Progress Bar und Progress Indicator in JavaFX
In diesem Artikel geht es um die Progress Bar in JavaFX. Dabei handelt es sich um die Ladeleiste die man z.B. beim Herunterladen einer Datei, oder Kopieren von Dateien sieht. Schauen wir mal wie man eine Progress bar anlegt.
Anlegen einer Progress Bar und Progress Indicator in JavaFX
ProgressBar pb = new ProgressBar(0.7);
ProgressIndicator pi = new ProgressIndicator(0.7);
grid.getChildren().add(pb);
grid.getChildren().add(pi);
GridPane.setConstraints(pb, 0,0);
GridPane.setConstraints(pi, 1,0);
Die sieht dann so aus:
[image img_id=”6326″ alt=”Progress Bar und Progress Indicator in JavaFX” width=”261″ height=”205″]
Wir haben also mit der 0.7 definiert, wie weit der blaue Balken den Weißen ausfüllt und um wie viel % unser Progress Indicator gesetzt ist.
Kombinieren wir das mal mit einem Slider. Bei dem folgenden Code handelt es sich um den Inhalt der start Methode
Beispiel für die Verwendung von Progress Bar und Progress Indicator in JavaFX
// wir legen unser GridPane an
GridPane grid = new GridPane();
// weisen das Padding (interner Abstand) zu
grid.setPadding(new Insets(10, 10, 10, 10));
// und fügen einen kleinen Außenabstand hinzu
grid.setVgap(10);
grid.setHgap(10);
Slider slider = new Slider();
slider.setMin(0);
slider.setMax(100);
ProgressBar pb = new ProgressBar(0.0);
ProgressIndicator pi = new ProgressIndicator(0.0);
// Hier reagiert der Slider auf jegliche Veränderungen
slider.valueProperty().addListener(new ChangeListener() {
public void changed(ObservableValue<? extends Number> ov,
Number old_val, Number new_val) {
pb.setProgress(new_val.doubleValue()/100);
pi.setProgress(new_val.doubleValue()/100);
}
});
grid.getChildren().add(pb);
grid.getChildren().add(pi);
grid.getChildren().add(slider);
GridPane.setConstraints(pb, 1,0);
GridPane.setConstraints(pi, 2,0);
GridPane.setConstraints(slider, 0,0);
Scene scene = new Scene(grid,300,300);
primaryStage.setScene(scene);
primaryStage.show();
Damit erhalten wir nun einen Slider, der unsere Progress Bar und Progress Indicator in JavaFX direkt beeinflusst: