java进度条的参数,JavaFX进度条

本篇文章帮大家学习javaFX进度条,包含了JavaFX进度条使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。

进度条(ProgressBar)可视化JavaFX应用程序中的操作进度。

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.ProgressBar;

import javafx.stage.Stage;

// create W w w . y I IB A I.C o m

public class Main extends Application {

@Override

public void start(Stage stage) {

Group root = new Group();

Scene scene = new Scene(root, 260, 80);

stage.setScene(scene);

Group g = new Group();

ProgressBar p2 = new ProgressBar();

g.getChildren().add(p2);

scene.setRoot(g);

stage.show();

}

public static void main(String[] args) {

launch(args);

}

}

上面的代码生成以下结果。

创建ProgressBar

以下代码显示如何通过传递progress值来创建ProgressBar。

ProgressBar pb = new ProgressBar(0.6);

还可以使用空构造函数创建没有参数的进度条。然后使用setProgress()方法分配值。如果我们不能确定任务的完全完成时间,可以设置进度条在不确定模式,直到确定任务的长度。

以下代码显示如何创建一个完成25%的进度条(ProgressBar)。

import javafx.application.Application;

import javafx.beans.value.ChangeListener;

import javafx.beans.value.ObservableValue;

import javafx.concurrent.Task;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.geometry.Pos;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.Label;

import javafx.scene.control.ProgressBar;

import javafx.scene.layout.BorderPane;

import javafx.scene.layout.HBox;

import javafx.scene.paint.Color;

import javafx.stage.Stage;

// by W W w . yIIB aI.C O M

public class Main extends Application {

Task copyWorker;

public static void main(String[] args) {

Application.launch(args);

}

@Override

public void start(Stage primaryStage) {

Group root = new Group();

Scene scene = new Scene(root, 330, 120, Color.WHITE);

BorderPane mainPane = new BorderPane();

root.getChildren().add(mainPane);

final Label label = new Label("Files Transfer:");

final ProgressBar progressBar = new ProgressBar(0);

final HBox hb = new HBox();

hb.setSpacing(5);

hb.setAlignment(Pos.CENTER);

hb.getChildren().addAll(label, progressBar);

mainPane.setTop(hb);

final Button startButton = new Button("Start");

final Button cancelButton = new Button("Cancel");

final HBox hb2 = new HBox();

hb2.setSpacing(5);

hb2.setAlignment(Pos.CENTER);

hb2.getChildren().addAll(startButton, cancelButton);

mainPane.setBottom(hb2);

startButton.setOnAction(new EventHandler() {

public void handle(ActionEvent event) {

startButton.setDisable(true);

progressBar.setProgress(0);

cancelButton.setDisable(false);

copyWorker = createWorker();

progressBar.progressProperty().unbind();

progressBar.progressProperty().bind(copyWorker.progressProperty());

copyWorker.messageProperty().addListener(new ChangeListener() {

public void changed(ObservableValue extends String> observable, String oldValue,

String newValue) {

System.out.println(newValue);

}

});

new Thread(copyWorker).start();

}

});

cancelButton.setOnAction(new EventHandler() {

public void handle(ActionEvent event) {

startButton.setDisable(false);

cancelButton.setDisable(true);

copyWorker.cancel(true);

progressBar.progressProperty().unbind();

progressBar.setProgress(0);

System.out.println("cancelled.");

}

});

primaryStage.setScene(scene);

primaryStage.show();

}

public Task createWorker() {

return new Task() {

@Override

protected Object call() throws Exception {

for (int i = 0; i < 10; i++) {

Thread.sleep(2000);

updateMessage("2000 milliseconds");

updateProgress(i + 1, 10);

}

return true;

}

};

}

}

上面的代码生成以下结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值