日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator

發布時間:2023/12/3 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

翻譯自??Progress Bar and Progress Indicator

在本章中,您將了解進度指示器和進度條,以及可視化JavaFX應用程序中任何操作進度的UI控件。

本ProgressIndicator類及其直接子類ProgressBar所提供的功能,以表明特定的任務是處理和檢測是如何工作的很多已經做了。當ProgressBar類將進度可視化為完成條時,ProgressIndicator該類以動態變化的餅圖的形式顯示進度,如圖17-1所示。

圖17-1進度條和進度指示器

?

創建進度控制

使用示例17-1中的代碼片段在JavaFX應用程序中插入進度控件。

示例17-1實現進度條和進度指示器

ProgressBar pb = new ProgressBar(0.6); ProgressIndicator pi = new ProgressIndicator(0.6);

您還可以使用空構造函數創建不帶參數的進度控件。在這種情況下,您可以使用該setProgress方法分配值。

有時,應用程序無法確定任務的完整完成時間。在這種情況下,進度控制將保持不確定模式,直到確定任務的長度。圖17-2顯示了進度控件的不同狀態,具體取決于其進度變量值。

圖17-2各種進度控制狀態

例17-2顯示了圖17-2中所示應用程序的源代碼。

示例17-2啟用進度控制的不同狀態

import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.ProgressBar; import javafx.scene.control.ProgressIndicator; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage;public class Main extends Application {final Float[] values = new Float[] {-1.0f, 0f, 0.6f, 1.0f}; final Label [] labels = new Label[values.length]; final ProgressBar[] pbs = new ProgressBar[values.length]; final ProgressIndicator[] pins = new ProgressIndicator[values.length]; final HBox hbs [] = new HBox [values.length];@Overridepublic void start(Stage stage) {Group root = new Group();Scene scene = new Scene(root, 300, 150);scene.getStylesheets().add("progresssample/Style.css");stage.setScene(scene);stage.setTitle("Progress Controls");for (int i = 0; i < values.length; i++) {final Label label = labels[i] = new Label();label.setText("progress:" + values[i]);final ProgressBar pb = pbs[i] = new ProgressBar();pb.setProgress(values[i]);final ProgressIndicator pin = pins[i] = new ProgressIndicator();pin.setProgress(values[i]);final HBox hb = hbs[i] = new HBox();hb.setSpacing(5);hb.setAlignment(Pos.CENTER);hb.getChildren().addAll(label, pb, pin);}final VBox vb = new VBox();vb.setSpacing(5);vb.getChildren().addAll(hbs);scene.setRoot(vb);stage.show();}public static void main(String[] args) {launch(args);} }

進度變量的正值介于0和1之間表示進度百分比。例如,0.4對應于40%。此變量的負值表示進度處于不確定模式。使用該isIndeterminate方法檢查進度控件是否處于不確定模式。

?

指示用戶界面的進度

最初簡化示例17-2以呈現進度控件的所有可能狀態。在實際應用程序中,可以通過其他UI元素的值獲取進度值。

研究示例17-3中的代碼,了解如何根據滑塊位置設置進度條和進度指示器的值。

示例17-3從滑塊接收進度值

import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Pos; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ProgressBar; import javafx.scene.control.ProgressIndicator; import javafx.scene.control.Slider; import javafx.scene.layout.HBox; import javafx.stage.Stage;public class Main extends Application {@Overridepublic void start(Stage stage) {Group root = new Group();Scene scene = new Scene(root);stage.setScene(scene);stage.setTitle("Progress Controls");final Slider slider = new Slider();slider.setMin(0);slider.setMax(50);final ProgressBar pb = new ProgressBar(0);final ProgressIndicator pi = new ProgressIndicator(0);slider.valueProperty().addListener(new ChangeListener<Number>() {public void changed(ObservableValue<? extends Number> ov,Number old_val, Number new_val) {pb.setProgress(new_val.doubleValue()/50);pi.setProgress(new_val.doubleValue()/50);}});final HBox hb = new HBox();hb.setSpacing(5);hb.setAlignment(Pos.CENTER);hb.getChildren().addAll(slider, pb, pi);scene.setRoot(hb);stage.show();}public static void main(String[] args) {launch(args);} }

編譯并運行此應用程序時,它會生成如圖17-3所示的窗口。

圖17-3指示滑塊設置的進度

一個ChangeListener對象確定該滑塊的值被改變,并且計算該進度條和進度指示符,使得進度控制的值在0.0到1.0的范圍內的進展。

?

相關的API文檔。 ?

  • ProgressBar

  • ProgressIndicator

總結

以上是生活随笔為你收集整理的JavaFX UI控件教程(十八)之Progress Bar和Progress Indicator的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。