2012-08-17 3 views
5

Je ne suis pas trop expérimenté avec Java et j'ai du mal à faire fonctionner une barre de progression. J'utilise le créateur d'interface graphique intégré de Netbeans. Actuellement, mon programme lit des images d'un répertoire dans un tableau d'images. Évidemment, cela prend un peu de temps, donc je voudrais une barre de progression simple pour mettre à jour l'utilisateur pour savoir à quel point le chargement est. J'ai utilisé un de ces composants de la barre de progression glisser-déposer.Comment utiliser la barre de progression en Java (GUI Netbeans)

-Je peux actuellement obtenir le nombre de fichiers dans un répertoire et calculer le pourcentage de fichiers chargés -Les fichiers sont chargés dans le tableau, mais la barre de progression n'est mise à jour qu'après le chargement de tous les fichiers. J'ai essayé de revalider et repeindre pendant que je boucle mais cela ne fonctionne pas -J'ai essayé les divers tutoriels sur docs.oracle mais ne peux pas sembler obtenir quelque chose qui fonctionne. -Je crois que SwingWorker est la classe que je devrais utiliser, est-ce correct?

Toute aide avec un exemple ou un conseil serait grandement appréciée! Merci!

+0

Oui, utilisez un travailleur de swing. –

Répondre

2

Oui, vous avez exécuté dans le piège de tous les nouveaux swing programers - le Event Dispatching Thread

Fondamentalement parlant, ce Thread est le coeur de tout système Swing. Il est responsable de l'envoi des événements à tous les composants de l'interface utilisateur, ainsi que de faire des demandes au gestionnaire de repaint pour mettre à jour l'interface utilisateur.

Si vous effectuez des tâches chronophages dans le EDT, vous empêcherez la mise à jour de l'interface utilisateur.

Je vous suggère de commencer par avoir une lecture par Worker Threads and SwingWorker et Concurrency in Swing et, parce que je sais que vous allez demander, une lecture de cette réponse, il a un certain nombre d'exemples d'utilisation SwingWorker, JTextArea appending problems

Questions connexes