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

溫馨提示×

java progressbar如何處理用戶中斷操作

小樊
82
2024-09-05 16:38:12
欄目: 編程語言

在Java中,我們可以使用ProgressBar庫來創建一個進度條。要處理用戶中斷操作,我們可以使用ThreadExecutorService來實現。以下是一個簡單的示例:

  1. 首先,添加ProgressBar庫依賴到你的項目。如果你使用Maven,可以在pom.xml文件中添加以下依賴:
   <groupId>me.tongfei</groupId>
   <artifactId>progressbar</artifactId>
   <version>0.9.2</version>
</dependency>
  1. 創建一個名為InterruptibleProgressBarDemo.java的類,并編寫以下代碼:
import me.tongfei.progressbar.*;

import java.util.concurrent.*;

public class InterruptibleProgressBarDemo {
    public static void main(String[] args) {
        int totalTasks = 100;
        ExecutorService executor = Executors.newSingleThreadExecutor();
        ProgressBar progressBar = new ProgressBarBuilder()
                .setTaskName("Processing tasks")
                .setInitialMax(totalTasks)
                .build();

        Future<?> taskFuture = executor.submit(() -> {
            for (int i = 0; i< totalTasks; i++) {
                // 模擬耗時任務
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    System.out.println("Task interrupted.");
                    break;
                }
                progressBar.step();
            }
            progressBar.close();
        });

        try {
            taskFuture.get(5, TimeUnit.SECONDS);
        } catch (TimeoutException e) {
            System.out.println("User interrupted the operation.");
            taskFuture.cancel(true);
            progressBar.close();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        } finally {
            executor.shutdown();
        }
    }
}

在這個示例中,我們創建了一個包含100個任務的進度條。我們使用ExecutorService來運行一個單線程任務,該任務將逐步更新進度條。我們使用Future.get()方法設置了一個超時時間(5秒),以便在用戶中斷操作時取消任務。

當用戶中斷操作時(例如,通過按下Ctrl+C),TimeoutException將被捕獲,我們將取消任務并關閉進度條。

0
垦利县| 塘沽区| 民县| 井研县| 三原县| 彝良县| 吉隆县| 娱乐| 隆子县| 潞西市| 滨州市| 长春市| 清涧县| 赤峰市| 晋宁县| 临城县| 龙门县| 民乐县| 江都市| 凤山县| 正蓝旗| 石楼县| 许昌市| 易门县| 甘洛县| 紫金县| 咸宁市| 虎林市| 星子县| 凌海市| 北川| 什邡市| 富源县| 延津县| 牡丹江市| 庐江县| 科尔| 益阳市| 榆树市| 安塞县| 馆陶县|