IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Fenêtre pour faire patienter l'utilisateur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut Fenêtre pour faire patienter l'utilisateur
    Bonjour,

    Est-il possible de faire afficher une simple fenêtre indiquant à l'utilisateur de patienter pendant la tentative de connexion à une BD ?
    Cette fenêtre devra fermer une fois la connexion réussie ou pas.
    En fait, dans mon application, je demande à l'utilisateur d'entrer l'adresse IP du serveur de BD sur lequel il veut se connecter, et donc si cette adresse n'existe pas, 20 à 30 sec (très long) s'écoulent avant que le message d'erreur n'apparaisse.

    J'ai fait quelques recherches sur les JprogressBar, les threads, les MonitorProgress,... mais il y a sûrement moyen de faire ça très simplement je pense.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Il n'y a rien de tout fait.

    Tu veux faire quelque chose de joli ou de simple ?

    Pour quelque chose de joli, regarde ce tuto : http://gfx.developpez.com/tutoriel/java/swing/wait/

    Sinon, le plus simple reste une simple progress bar avec SwingWorker ou simplement avec des Thread en tenant compte de l'EDT.

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    Citation Envoyé par Baptiste Wicht Voir le message
    Pour quelque chose de joli, regarde ce tuto : http://gfx.developpez.com/tutoriel/java/swing/wait/
    .
    J'ai déjà consulté ce tuto mais ça ne vaut pas la peine de faire tout ça pour mon cas. Je voudrais juste une fenêtre pour avertir l'utilisateur que l'application est en train de tenter de se connecter à la BD.

    Citation Envoyé par Baptiste Wicht Voir le message
    Sinon, le plus simple reste une simple progress bar avec SwingWorker ou simplement avec des Thread en tenant compte de l'EDT.
    Je n'ai pas besoin non plus d'une bar de progression donc je pencherais plus pour les threads, le problème c'est que, malgré plusieurs essais, je n'arrive pas à en comprendre le fonctionnement. J'ai même eu droit à une boucle infinie.

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    Voilà, j'ai utilisé un Thread qui lance la fenêtre "patienter" (classe FenWait).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class FenWait extends JFrame implements Runnable 
    {
        private JLabel lab1 = new JLabel("");
        public FenWait() 
        {
            super("Traitement en cours...");
            this.setSize(300, 100);
            this.setResizable(false);
            Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); // Taille de l'écran
            this.setLocation((screen.width - this.getSize().width)/2,(screen.height - this.getSize().height)/2); // Centrer à l'écran
            JPanel jp = new JPanel();
            jp.add(new JLabel("Traitement en cours..."));
            jp.add(lab1);
            getContentPane().add(jp);
        }
     
        public void run() 
        {
            lab1.setText("Traitement en cours...");
        }
    }
    Quand je lance mon thread, la frame s'ouvre bien mais reste transparente.
    Ai-je oublié quelque chose dans ma classe FenWait ?

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    Quand je fais un main dans ma classe FenWait avec FenWait fw = new FenWait(), ma JFrame s'affiche normalement.
    Mais quand je l'appelle avec un thread à partir d'une autre classe, le thread fonctionne très bien mais la JFrame est transparente
    Pourquoi ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Phrase pour faire patienter l'utilisateur durant l'envoi d'un formulaire
    Par heretik25 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/03/2012, 13h40
  2. [WD16] Animation pour faire patienter l'utilisateur
    Par bombseb dans le forum WinDev
    Réponses: 8
    Dernier message: 14/02/2012, 15h19
  3. Image pour faire patienter l'utilisateur
    Par sakhavat dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/04/2011, 09h53
  4. Faire Patienter l'utilisateur sur un Formulaire
    Par faressam dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/04/2008, 08h04
  5. [Servlet] Faire patienter l'utilisateur
    Par GLDavid dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/06/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo