JprogressBar , barre chargement [Résolu]

cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 10:02 - Dernière réponse : dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention
- 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 

12 réponses

Répondre au sujet
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 13:08
+3
Utile
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!!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dvoraky
cs_jojolemariole 519 Messages postés mercredi 21 mars 2007Date d'inscription 19 décembre 2016 Dernière intervention - 29 mai 2008 à 10:54
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 11:04
0
Utile
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
cs_jojolemariole 519 Messages postés mercredi 21 mars 2007Date d'inscription 19 décembre 2016 Dernière intervention - 29 mai 2008 à 11:34
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 12:54
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 14:39
0
Utile
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
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 14:42
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 15:22
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 15:23
0
Utile
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
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 15:28
0
Utile
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
cs_flolag 114 Messages postés mardi 9 avril 2002Date d'inscription 12 août 2016 Dernière intervention - 29 mai 2008 à 15:44
0
Utile
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
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 15:49
0
Utile
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.