如何在 JavaFX 中创建 ProgressIndicator?
javafxobject oriented programmingprogramming更新于 2026/1/9 21:00:17
进度指示器是一个圆形 UI 组件,用于指示特定操作的进度。您可以通过实例化 javafx.scene.control.ProgressIndicator 类来创建进度指示器。
示例
以下示例演示了如何创建 ProgressIndicator。
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.control.Slider;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class ProgressIndicatorExample extends Application {
public void start(Stage stage) {
//创建进度指示器
ProgressIndicator indicator = new ProgressIndicator(0.6);
//设置进度条的大小
indicator.setPrefSize(300, 120);
//创建滑块
Slider slider= new Slider(0, 1, 0.2);
slider.setShowTickLabels(true);
slider.setShowTickMarks(true);
slider.setMajorTickUnit(0.25);
slider.setBlockIncrement(0.1);
slider.valueProperty().addListener(new ChangeListener<Number>() {
public voidchanged(ObservableValue <?extends Number>observable, Number oldValue, Number newValue){
//设置旋转角度
indicator.setProgress((double) newValue);
//设置指示器的值
indicator.setProgress((double) newValue);
}
});
//创建一个 vbox 来容纳进度条和进度指示器
VBox vbox = new VBox(20);
vbox.setSpacing(5);
vbox.setPadding(new Insets(15, 150, 10, 60));
vbox.getChildren().addAll(slider, indicator);
vbox.setStyle("-fx-background-color: BEIGE");
//设置舞台
Scene scene = new Scene(vbox, 595, 200, Color.BEIGE);
stage.setTitle("Progress Indicator");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
输出


