91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java progressbar如何實現動態效果

小樊
95
2024-09-05 16:29:08
欄目: 編程語言

在Java中,要實現一個具有動態效果的進度條,可以使用Swing庫中的JProgressBar組件。以下是一個簡單的示例,展示了如何創建一個具有動態效果的進度條:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ProgressBarDemo {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }

    private static void createAndShowGUI() {
        // 創建一個JFrame窗口
        JFrame frame = new JFrame("ProgressBar Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        // 創建一個JProgressBar組件
        JProgressBar progressBar = new JProgressBar();
        progressBar.setMinimum(0);
        progressBar.setMaximum(100);
        progressBar.setValue(0);
        progressBar.setStringPainted(true);

        // 創建一個JButton組件
        JButton startButton = new JButton("Start");
        startButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 當按鈕被點擊時,啟動一個新的線程來更新進度條
                new Thread(() -> {
                    for (int i = 0; i <= 100; i++) {
                        final int progress = i;
                        try {
                            Thread.sleep(50); // 模擬耗時操作
                        } catch (InterruptedException ex) {
                            ex.printStackTrace();
                        }

                        // 在事件分發線程(EDT)中更新進度條
                        SwingUtilities.invokeLater(() -> {
                            progressBar.setValue(progress);
                            if (progress == 100) {
                                JOptionPane.showMessageDialog(frame, "任務完成!");
                            }
                        });
                    }
                }).start();
            }
        });

        // 將進度條和按鈕添加到窗口中
        Container contentPane = frame.getContentPane();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(progressBar, BorderLayout.CENTER);
        contentPane.add(startButton, BorderLayout.SOUTH);

        // 顯示窗口
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

這個示例中,我們創建了一個包含JProgressBarJButton的簡單窗口。當用戶點擊按鈕時,會啟動一個新線程來模擬耗時操作,并在每次迭代時更新進度條的值。為了確保進度條的更新在事件分發線程(EDT)中執行,我們使用SwingUtilities.invokeLater()方法。

運行此示例后,你將看到一個具有動態效果的進度條,當任務完成時,會彈出一個提示框。

0
永安市| 凤台县| 太仓市| 泰兴市| 东乌| 山西省| 扬州市| 成武县| 绍兴县| 巴里| 怀宁县| 玛沁县| 台山市| 武清区| 崇明县| 沈丘县| 昌宁县| 晋州市| 迁西县| 泰来县| 昌江| 洞头县| 平远县| 县级市| 巴林右旗| 喀喇沁旗| 肇东市| 平定县| 青川县| 金昌市| 吴忠市| 申扎县| 冷水江市| 通化县| 中卫市| 宁津县| 辽宁省| 道孚县| 穆棱市| 什邡市| 专栏|