共計 1570 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。
在 Java 中可以通過使用 JProgressBar
類來實現(xiàn)進度條的顯示。
以下是一個簡單的例子,演示了如何在 Java 中實現(xiàn)進度條的顯示:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ProgressBarExample extends JFrame {
private final JProgressBar progressBar;
private final JButton startButton;
public ProgressBarExample() {setTitle("進度條示例");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
// 創(chuàng)建進度條
progressBar = new JProgressBar(0, 100);
progressBar.setPreferredSize(new Dimension(250, 30));
progressBar.setStringPainted(true);
// 創(chuàng)建開始按鈕
startButton = new JButton("開始");
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 啟動一個線程更新進度條
new Thread(new Runnable() {
@Override
public void run() {for (int i = 0; i <= 100; i++) {
final int progress = i;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {progressBar.setValue(progress);
}
});
try {Thread.sleep(100); // 模擬耗時任務(wù)
} catch (InterruptedException e) {e.printStackTrace();
}
}
}
}).start();}
});
add(progressBar);
add(startButton);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {new ProgressBarExample().setVisible(true);
}
});
}
}
在上述代碼中,我們創(chuàng)建了一個 JFrame
窗口,其中包含一個 JProgressBar
進度條和一個 JButton
按鈕。當(dāng)點擊按鈕時,我們啟動一個新的線程,通過更新進度條的值來顯示進度。
在線程中,我們使用 SwingUtilities.invokeLater()
方法來確保更新操作在事件分發(fā)線程中進行,這是因為 Swing 組件只能在事件分發(fā)線程中進行更新操作。
在每次循環(huán)中,我們使用 Thread.sleep()
方法來模擬一個耗時任務(wù)。根據(jù)實際情況,您可以根據(jù)需要修改這個時間間隔。
最后,我們使用 SwingUtilities.invokeLater()
方法來啟動整個應(yīng)用程序,并在事件分發(fā)線程中創(chuàng)建并顯示 ProgressBarExample
窗口。
通過運行上述代碼,您將看到一個包含進度條和開始按鈕的窗口。當(dāng)您點擊開始按鈕時,進度條將逐漸填滿,直到達到 100%。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完