javaFX学习之 进度条(ProgressBar)和进度指示器(ProgressIndicator) 您所在的位置:网站首页 vbprogressbar控件怎么弄出来 javaFX学习之 进度条(ProgressBar)和进度指示器(ProgressIndicator)

javaFX学习之 进度条(ProgressBar)和进度指示器(ProgressIndicator)

2024-06-01 11:17| 来源: 网络整理| 查看: 265

原文链接:DOC-03-19 进度条(Progress Bar)和进度指示器(Progress Indicator) | JavaFX中文资料

进度指示器(ProgressIndicator)和进度条(Progressbar),这两个控件用于在JavaFX应用程序中对操作的进度进行可视化

ProgressIndicator类及其直接子类ProgressBar具有显示任务正在处理过程中并且目前处理进度是多少的功能。ProgressBar类使用带有完成度的长条来展示进度,而ProgressIndicatro则以动态变化的饼图来展示进度

ProgressBar 和ProgressIndicator

 

创建进度展示控件 

所示的代码片段来在你的JavaFX应用程序中插入进度展示控件。

实现ProgressBar 和ProgressIndicator

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

 你也可以使用不带参数的空构造方法来创建进度展示控件。在这种情况下,你可以使用setProgress方法来分配进度值

有时候应用程序无法确定完成任务所需的时间,在这种情况下进度展示控件会保持在不确定模式(Indetermine mode),直到完成任务时长确定为止。展示了进度展示控件根据其进度变量值而处在的不同状态 

 进度展示控件的不同状态

 

 

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 ProgressTest 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];//水平盒子布局对象数组 @Override public void start(Stage stage) throws InterruptedException { Group root = new Group();//节点组容器对象的创建 Scene scene = new Scene(root, 300, 250);//创建场景对象 stage.setScene(scene);//设置场景对象到舞台上 stage.setTitle("进度条控件"); for (int i = 0; i < values.length; i++) { final Label label = labels[i] = new Label();//创建一个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();//创建水平布局box对象 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.9表示90%。如果进度变量使用负数则表示对应的进度展示控件处于不确定模式。可以使用isIndeterminate方法来检查进度展示控件是否处于不确定模式中

根据Slider的位置来设置ProgressBar和ProgressIndicator的值 

根据Slider设置进度值

import javafx.application.Application; 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 ProgressBarTest extends Application { @Override public void start(Stage stage) { Group root = new Group();//节点组容器对象的创建 Scene scene = new Scene(root);//创建场景对象,场景对象上挂载节点组对象 stage.setScene(scene);//舞台对象上挂载场景对象 stage.setTitle("舞台上的标题"); 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(//滑块组件的事件交互监听器的添加 (ObservableValue


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有