如何在 JavaFX 中创建 ProgressIndicator?

javafxobject oriented programmingprogramming更新于 2025/4/13 20:22: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);
   }
}

输出


相关文章