公司的网站建设要记到什么科目,佛山企业自助建站系统,一流导航设计网站,3000部末年禁止无需下载翻译自 Progress Bar and Progress Indicator
在本章中#xff0c;您将了解进度指示器和进度条#xff0c;以及可视化JavaFX应用程序中任何操作进度的UI控件。
本ProgressIndicator类及其直接子类ProgressBar所提供的功能#xff0c;以表明特定的任务是处理和检测是如何工…翻译自 Progress Bar and Progress Indicator
在本章中您将了解进度指示器和进度条以及可视化JavaFX应用程序中任何操作进度的UI控件。
本ProgressIndicator类及其直接子类ProgressBar所提供的功能以表明特定的任务是处理和检测是如何工作的很多已经做了。当ProgressBar类将进度可视化为完成条时ProgressIndicator该类以动态变化的饼图的形式显示进度如图17-1所示。 图17-1进度条和进度指示器 创建进度控制
使用示例17-1中的代码片段在JavaFX应用程序中插入进度控件。 示例17-1实现进度条和进度指示器
ProgressBar pb new ProgressBar0.6;
ProgressIndicator pi new ProgressIndicator0.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 ChangeListenerNumber() {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