JprogressBar , barre chargement [Résolu]

Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
- - Dernière réponse : dvoraky
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
- 29 mai 2008 à 15:49
Salut,
Désolé de reposter un message à ce sujet mais je n'ai pas trouvé comment editer mon autre message.
Je voudrais en fait sur mon applet qu'il s'affiche une barre de progression (JProgressBar) durant une opération que mon applet effectue. Mais je ne trouve pas comment faire car avec ce que j'ai essayé dans mon code ci dessous il m'affiche la barre de progression qu'à la fin si quelqu'un aurait une solution.

JFrame cadre = new JFrame("En cours de chargement");
        JPanel panneau = new JPanel();
        JLabel texte = new JLabel("Veuillez patienter pendant le chargement...");
        JProgressBar progress = new JProgressBar(0, 100);
        progress.setIndeterminate(true);
        panneau.add("Center", progress);
        panneau.add("Center", texte);
        cadre.getContentPane().add(BorderLayout.CENTER, panneau);
        cadre.setSize(800, 600);
        cadre.setVisible(true);
        cadre.setResizable(false);
        cadre.setFocusableWindowState(true);
        cadre.setFocusable(true);
        cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       
       
        try {

            System.out.println("SaveButton actionPerformed() L: " + largeurSV
                    + ", H: " + hauteurSV);
            Image image = monImage.getScaledInstance(largeurSV, hauteurSV,
                    BufferedImage.SCALE_SMOOTH);
            // Redimensionnement de l'image
            image.flush();
            // ecriture dans le fichier

            Date maintenant = new Date();
            SimpleDateFormat monFormat = new SimpleDateFormat(
                    "dd_MM_yyyy-kk_mm_ss");
            dateFormatee = monFormat.format(maintenant);

            monImage = new BufferedImage(largeurSV, hauteurSV,
                    BufferedImage.TYPE_INT_RGB);
            monImage.createGraphics().drawImage(image, 0, 0, null);
            // creation nouvelle image redimensionner
            monImage.flush();

            if (extension.equals(".bmp")) {
                fileWrite = new File("C:/startup/img_" + dateFormatee + ".bmp");
                ImageIO.write(monImage, "BMP", fileWrite);
                cheminImage = "C:\\startup\\img_" + dateFormatee + ".bmp";
            }
            if (extension.equals(".gif")) {
                fileWrite = new File("C:/startup/img_" + dateFormatee + ".gif");
                ImageIO.write(monImage, "GIF", fileWrite);
                cheminImage = "C:\\startup\\img_" + dateFormatee + ".gif";
            }
            if (extension.equals(".jpg")) {
                fileWrite = new File("C:/startup/img_" + dateFormatee + ".jpg");
                ImageIO.write(monImage, "JPEG", fileWrite);
                cheminImage = "C:\\startup\\img_" + dateFormatee + ".jpg";
            }
            if (extension.equals(".jpeg")) {
                fileWrite = new File("C:/startup/img_" + dateFormatee + ".jpg");
                ImageIO.write(monImage, "JPEG", fileWrite);
                cheminImage = "C:\\startup\\img_" + dateFormatee + ".jpg";
            }
            if (extension.equals(".png")) {
                fileWrite = new File("C:/startup/img_" + dateFormatee + ".png");
                ImageIO.write(monImage, "PNG", fileWrite);
                cheminImage = "C:\\startup\\img_" + dateFormatee + ".png";
            }

        } catch (Exception e1) { // Si erreur affichage de l'erreur
            System.out
                    .println("Exception methode actionPerformed() SaveButton.java catch : "
                            + e1);
        }

        /*-----------------------------------------------------------------------------------
         --------------------------------  Envoi vers FTP ------------------------------
         ------------------------------------------------------------------------------------*/

        FtpConnection ftpVariable;
        ftpVariable = new FtpConnection(false, 1);

        // CONNEXION
        try {
            ftpVariable.connect(serveurFTP);

        } catch (UnknownHostException eftp1) {

            System.out
                    .println("Erreur class SaveButton envoi FTP //CONNEXION UnknownHostException: "
                            + eftp1);
            JOptionPane.showMessageDialog(this,
                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);

        } catch (IOException eftp2) {

            System.out
                    .println("Erreur class SaveButton envoi FTP //CONNEXION IOException : "
                            + eftp2);
            JOptionPane.showMessageDialog(this,
                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);
        }

        // LOGIN AVEC MP
        try {
            ftpVariable.login(loginFTP, mpFTP);

        } catch (IOException eftp3) {

            System.out
                    .println("Erreur class SaveButton envoi FTP // LOGIN AVEC MP : "
                            + eftp3);
            JOptionPane.showMessageDialog(this,
                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);

        }

        // UPLOAD DE LA NOUVELLE IMAGE CREE
        try {

            if (extension.equals(".bmp")) {
                ftpVariable.uploadFile(repertoireServeur + "img_"
                        + dateFormatee + ".bmp", cheminImage);
            }
            if (extension.equals(".gif")) {
                ftpVariable.uploadFile(repertoireServeur + "img_"
                        + dateFormatee + ".gif", cheminImage);
            }
            if (extension.equals(".jpg")) {
                ftpVariable.uploadFile(repertoireServeur + "img_"
                        + dateFormatee + ".jpg", cheminImage);
            }
            if (extension.equals(".jpeg")) {
                ftpVariable.uploadFile(repertoireServeur + "img_"
                        + dateFormatee + ".jpg", cheminImage);
            }
            if (extension.equals(".png")) {
                ftpVariable.uploadFile(repertoireServeur + "img_"
                        + dateFormatee + ".png", cheminImage);
            }

        } catch (IOException eftp4) {

            System.out
                    .println("Erreur class SaveButton envoi FTP // UPLOAD DE LA NOUVELLE IMAGE CREE : "
                            + eftp4);
            JOptionPane.showMessageDialog(this,
                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);
        }

        // LOGOUT
        try {

            ftpVariable.logout();

        } catch (IOException eftp5) {

            System.out.println("Erreur class SaveButton envoi FTP // LOGOUT : "
                    + eftp5);
            JOptionPane.showMessageDialog(this,
                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);
        }

        // DECONNEXION
        ftpVariable.disconnect();
        nb++;

        JOptionPane.showMessageDialog(this, "Votre image a bien été envoyée",
                "Envoi réussi", JOptionPane.INFORMATION_MESSAGE);

        /*-----------------------------------------------------------------------------------
         --------------------------------  Fin de Envoi vers FTP ------------------------------
         ------------------------------------------------------------------------------------*/

    }

-------------------
PortFolio
-------------------
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
3
Merci
Regarde pourquoi ça marche pas...
Je ne suis pas un compilateur sur patte mais bon je pense que le this n'est pas vraiment approprié étant donné que tu es dans une classe imbriqué (thread).
Tu peux remplacer le "this" par "Nom_de_ta_classe.this" où tu mets le nom de ta classe où se trouve la classe imbriqué Thread.

Tu vois? je pense que ça marchera comme ça

<hr width="100%" size="2" />Timmy!!!

Merci dvoraky 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de dvoraky
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Dernière intervention
19 décembre 2016
0
Merci
Salut,

Qu'est ce qui se passe exactement?

C'est normal que la barre de chargement ne se remplisse pas, il faut faire des setValue dessus. Et tu n'en fait pas dans ton code il me semble.
Commenter la réponse de cs_jojolemariole
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Oui mais le problème ne vient pas de là (ma barre est en valeur indéterminé donc elle tourne toujorus c'est juste un test) en fait quand je clic sur le bouton envoyer il envoi d'abord le fichier et ensutie affiche ma barre de progression. Parait il que c'est normal il faudrait que j'utilise des Thread mais j'avoue que je n'y comprend pas grand choses.
Merci de ton aide

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
519
Date d'inscription
mercredi 21 mars 2007
Dernière intervention
19 décembre 2016
0
Merci
ah oui, excuse-moi je n'avais pas vu le setIndeterminate(true) ;)

C'est bizarre, j'ai fait un exemple simplifié avec un long calcul sans utiliser de thread, et la barre est affichée correctement.

Essaie de mettre un :
<hr size="2" width="100%" />
// ta creation de fenetre avec les composants dont la progress bar

new Thread(){
    public void run(){

        // ton traitement ici  

    }
}.start();
Commenter la réponse de cs_jojolemariole
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Merci beaucoup ça marche !
Seul petit problème c'est que dans le Thread il n'accepte pas :
JOptionPane.showMessageDialog(this,
                                    "L'image n'a pu être envoyée ! \n Réessayez plus tard",
                                    " Erreur lors de l'envoi", JOptionPane.WARNING_MESSAGE);
Alors que j'ai besoin de ça pour prévenir l'utilisateur que c'est OK si t'aurais une solution rapidement.
Merci encore

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Merci encore mais c'est grave comme je me rend comtpe que je me casse la tête sur de problèmes parfois tout bête ...
Si j'ai d'autre problème je te tiens au courant

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
0
Merci
Mais non t'inquietes, dis toi que nous aussi on est passé par là.

Fallait le savoir, c'est tout

Et puis si tout le monde savait tout, il n'y aurait pas de codes-sources, ça serait triste ;)

Allé bonne chance

<hr size="2" width="100%" />Timmy!!!
Commenter la réponse de dvoraky
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Dernier problème une fois que mon image est envoyé ou qu'il y a eu un problème une petite fenetre se ferme mais au centre mon image est toujours affiché et pire un cadre blanc est placé là ou etait la fenetre de chargement avant. J'ai bien essayé un repaint mais sans résultat car ma methode paint() est dans un autre classe donc je ne voit pas trop comment faire.
Merci j'espere avoir été clair parce que je sais pas trop comment expliquer.

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Au pire il faudrait que je fasse recharger mon applet ou actualiser la page du navigateur mais je ne sais pas comment faire.

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
0
Merci
Non, il faut bien appeller les méthodes de redessinage des composants... c'est là que les limites de swing commencent à arriver. Enfin, je veux dire c'est farfelu pour trouver.

Fais bien les repaint() comme il faut, essaie de voir que toutes les méthodes repaint de tous les composants pouvant se trouver sous la zone à rafraichir s'exécutent...

Enfin, là, il n'y a pas de secret --> chercher

<hr size="2" width="100%" />Timmy!!!
Commenter la réponse de dvoraky
Messages postés
114
Date d'inscription
mardi 9 avril 2002
Dernière intervention
12 août 2016
0
Merci
Tiens si tu veux tester voici l'url : http://florent.lagoda.free.fr/applet/applet.html tu verras mieux ce que je veux dire

-------------------
PortFolio
-------------------
Commenter la réponse de cs_flolag
Messages postés
744
Date d'inscription
dimanche 1 avril 2007
Dernière intervention
9 mai 2010
0
Merci
Attend on est hors sujet là... on continue en MP

<hr size="2" width="100%" />Timmy!!!
Commenter la réponse de dvoraky

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.