Afficher une JProgressBar indéterminée pendant l'exécution du fichier batch
Introduction
Dans ce scénario, l'exigence consiste à afficher un JProgressBar indéterminé pendant qu'un fichier batch s'exécute en arrière-plan. Le défi réside dans l'exécution simultanée de plusieurs processus dans Swing, car il est généralement limité à un seul processus.
Solution utilisant SwingWorker
Pour résoudre ce problème, nous pouvons employer un Classe SwingWorker qui exécute le ProcessBuilder dans un thread dédié, nous permettant de mettre à jour le JProgressBar et d'afficher la sortie simultanément avec le processus en cours.
Le code fourni inclut ici des méthodes pour gérer les actions des boutons pour démarrer et arrêter la tâche en arrière-plan. De plus, il intègre un JLabel pour afficher les mises à jour d'état et un JTextArea pour afficher la sortie du fichier batch.
Classe SwingWorker personnalisée (BackgroundTask)
La classe BackgroundTask étend SwingWorker et remplace trois principaux méthodes :
En utilisant cette approche , nous obtenons à la fois une indication de progression et un affichage de sortie pendant l'exécution du fichier batch. Cela élimine la confusion des utilisateurs et offre une meilleure expérience utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!