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的进度条无法直接设置当前进度,而是通过绑定数据或监听事件来改变进度。