[Conception] - Chargement
Salut à tous :)
Ca fait pas mal de temps que je n'ai plus fait de Java et j'ai décidé de m'y remettre.
J'ai donc un fichier XML que je charge grace à DOM au démarrage de l'appli et j'aimerais créer une sorte de SplashScreen avec une JProgressBar qui montre l'état du chargement de ce fichier XML avant d'afficher la GUI de l'appli...
J'ai consulté la doc concernant les JProgressBar dans la doc Java et elle me semble assez claire. Le seul problème (si j'ai bien compris le code), c'est qu'ils mettent à jour la JProgressBar toutes les secondes, en déclenchant un événement capturé par un ActionListener. En gros si j'ai bien compris ça se passe comme ça :
_ Un timer déclenche le code de l'ActionListener toutes le secondes.
_ L'ActionListener se charge de récupérer l'état courant de la tâche que l'on surveille (dans mon cas le chargement du fichier)
_ L'ActionListener met à jour la JProgressBar avec ces infos.
Bref, je trouve que cette méthode n'est pas très élégante car la barre avance de manière saccadée. J'aimerais donc améliorer cela pour avoir une JProgressBar fluide.
Est-ce faisable ? J'ai pensé aux Threads mais je ne vois pas trop comment faire ça.. A vrai dire, je suis un peu perdu :lol:
Si quelqu'un a une idée il serait vraiment le bienvenu :)
Pour le moment j'ai pensé faire :
une classe LoadingTask qui extends SwingWorker et qui met à jour l'état de la tâche en fonction du chargement (il faut aussi que je vois comment faire ça...)
une classe Loading qui récupère la taille du fichier à charger, et qui, dans sa méthode go(), crée une instance de LoadingTask et la démarre (loadingtask.start(); )
dans mon main, j'ai pensé créer une instance de Loading et lui appliquer la méthode go(). C'est à partir de là que je bloque, je ne sais pas comment mettre à jour ma JProgressBar...
Enfin je m'embrouille sûrement pas mal :s
Toute aide est donc la bienvenue !
Merci :)
Re: [Conception] - Chargement
Citation:
Envoyé par defkid
Le seul problème (si j'ai bien compris le code), c'est qu'ils mettent à jour
Hein? Qui ça, "ils"?
La mise à jour de la progressbar se fait lorsque tu le décides. Ca vient d'où ce 1 seconde?