Java中的进度条是一个UI组件,可以用于运行中任务,例如文件上传、下载等操作。

一、Swing进度条

Java Swing提供了一个名为JProgressBar的类,用于创建进度条。

以下代码展示了如何创建一个简单的Swing进度条:

import javax.swing.*; public class ProgressBarDemo {     public static void main(String[] args) {         JFrame frame = new JFrame("Progress Bar Demo");         JProgressBar progressBar = new JProgressBar(0, 100);                  progressBar.setValue(0);         progressBar.setStringPainted(true);                  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.setSize(300, 200);         frame.setLayout(new FlowLayout());         frame.getContentPane().add(progressBar);         frame.setVisible(true);                  for (int i = 0; i <= 100; i++) {             progressBar.setValue(i);             try {                 Thread.sleep(100);             } catch (InterruptedException ex) {                 ex.printStackTrace();             }         }     } }

此代码中创建了一个新的JProgressBar实例,并设置最小值和最大值分别为0和100。然后,我们使用setValue方法更新当前进度,并使用setStringPainted方法,来设置进度条上是否显示当前进度。

二、JavaFX进度条

JavaFX也提供了创建进度条的方式,该方式是用ProgressBar类。

以下是一个JavaFX进度条的创建代码:

import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.ProgressBar; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class ProgressBarDemoFX extends Application {     public static void main(String[] args) {         launch(args);     }     @Override     public void start(Stage primaryStage) {         ProgressBar progressBar = new ProgressBar();                  StackPane root = new StackPane();         root.getChildren().add(progressBar);                  Scene scene = new Scene(root, 300, 200);                  primaryStage.setTitle("ProgressBar Demo");         primaryStage.setScene(scene);         primaryStage.show();     } }

这段代码创建了一个ProgressBar实例,JavaFX的进度条无法直接设置当前进度,而是通过绑定数据或监听事件来改变进度。