Java进度条与任务完成的回调机制

avatar
作者
猴君
阅读量:0

在Java中,可以使用Swing库中的JProgressBar组件来创建一个进度条。为了实现任务完成的回调机制,可以采用以下步骤:

  1. 导入所需的库:
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; 
  1. 创建一个JFrame窗口,并在其中添加一个JProgressBar组件:
public class ProgressBarExample {     public static void main(String[] args) {         JFrame frame = new JFrame("Progress Bar Example");         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.setSize(300, 100);          JProgressBar progressBar = new JProgressBar(0, 100);         progressBar.setStringPainted(true);         frame.getContentPane().add(progressBar, BorderLayout.CENTER);          frame.setVisible(true);     } } 
  1. 创建一个任务类,该类实现了Runnable接口,并在run()方法中更新进度条的状态:
class Task implements Runnable {     private JProgressBar progressBar;      public Task(JProgressBar progressBar) {         this.progressBar = progressBar;     }      @Override     public void run() {         for (int i = 0; i <= 100; i++) {             try {                 Thread.sleep(50); // 模拟任务执行时间             } catch (InterruptedException e) {                 e.printStackTrace();             }             progressBar.setValue(i);         }     } } 
  1. 在主类中创建一个线程,将任务提交给该线程执行,并在任务完成后执行回调操作:
public class ProgressBarExample {     public static void main(String[] args) {         JFrame frame = new JFrame("Progress Bar Example");         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         frame.setSize(300, 100);          JProgressBar progressBar = new JProgressBar(0, 100);         progressBar.setStringPainted(true);         frame.getContentPane().add(progressBar, BorderLayout.CENTER);          Task task = new Task(progressBar);         Thread thread = new Thread(task);         thread.start();          thread.addActionListener(new ActionListener() {             @Override             public void actionPerformed(ActionEvent e) {                 JOptionPane.showMessageDialog(frame, "任务完成!");                 frame.dispose();             }         });          frame.setVisible(true);     } } 

在这个例子中,我们创建了一个简单的进度条,并通过一个线程来更新进度条的状态。当任务完成时,我们添加了一个ActionListener,它会弹出一个对话框提示用户任务已完成,并关闭窗口。这样,我们就实现了一个简单的任务完成的回调机制。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!