Publié le 17/08/2010
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Afficher une barre de progression dans un JFrame

Sur une opération longue comme le téléchargement de fichier ou l'accès à une base de données, il est conseillé d'afficher une fenêtre d'attente. Ainsi l'utilisateur verra la progression de l'opération et sait quand le résultat va s'afficher à l'écran.

Créer une fenetre de progression

Pour l'exemple, nous allons construire un JFrame contenant une JProgressBar qui affiche l'avancement de l'opération de 0 à 100 pourcent. La tache longue est simulée avec une boucle et un Sleep.

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
 
/**
 * Afficher une barre de progression dans un JFrame
 * @see http://www.fobec.com/java/966/afficher-une-barre-progression-dans-jframe.html
 * @author Axel 2010
 */
public class ProgressDialog extends JFrame {
 
    public JProgressBar progressbar;
 
    /**
     * Constructeur
     */
    public ProgressDialog() {
        super();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        JPanel pane = new JPanel();
        pane.setLayout(new FlowLayout());
        progressbar = new JProgressBar(0, 100);
        progressbar.setValue(0);
        progressbar.setStringPainted(true);
        pane.add(progressbar);
        setContentPane(pane);
    }
 
    /**
     * Afficher la progression de tache
     */
 
    public void loop() {
        int position = 0;
        while (position < 105) {
            progressbar.setValue(position);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
            }
            position += 5;
        }
    }
 
    /**
     * Exemple
     * @param arguments 
     */
    public static void main(String[] arguments) {
        ProgressDialog frame = new ProgressDialog();
        frame.pack();
        frame.setVisible(true);
        frame.loop();
    }
}

Cet exemple a pour but de montrer comment agir sur l'avancement de la JProgressBar, à savoir faire avancer la progression de 0 à 100 pourcent. Effectivement, le système de fenetre d'attente pourra être améliorer avec un Thread pour éviter les sacades.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
17/08/2010
Visualisation
vu 4857 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Coll dans java

Excuse moi, mais pourrais tu expliquer un peu plus precisement ce que tu fais lorsque tu convertis en gris je comprends l'idee mais pas ce que chaque action fait precisement et le cacth a la fin. Parc...

Publié par Fobec dans php5

a priori il manque simplement le R dans le nom de la constante
PDO::ATTR_ERRMODE en remplacement de PDO::ATT_ERRMODE

Publié par Tchat dans news

Analyses interessantes.
J'ai constate aussi des comportements etranges de Google concernant les placements des sites sur leurs requetes.
Par contre j'ai remarque que Google ne tient pl...

Publié par stux dans java

Génial.. C'est exactement ce que je cherchais.

Publié par Souti dans php5

Merci pour ce code. Trs utile.

Pour mon cas, il a fallu que j'ajoute une } avant ?> le pour fermer le for each.