在Java中,可以使用Swing庫中的JProgressBar組件來創(chuàng)建一個進度條。為了實現(xiàn)任務(wù)完成的回調(diào)機制,可以采用以下步驟:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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);
}
}
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); // 模擬任務(wù)執(zhí)行時間
} catch (InterruptedException e) {
e.printStackTrace();
}
progressBar.setValue(i);
}
}
}
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, "任務(wù)完成!");
frame.dispose();
}
});
frame.setVisible(true);
}
}
在這個例子中,我們創(chuàng)建了一個簡單的進度條,并通過一個線程來更新進度條的狀態(tài)。當(dāng)任務(wù)完成時,我們添加了一個ActionListener,它會彈出一個對話框提示用戶任務(wù)已完成,并關(guān)閉窗口。這樣,我們就實現(xiàn)了一個簡單的任務(wù)完成的回調(diào)機制。