4 votes

Barre de progression pour une application Java Swing

J'ai créé une application Java Swing pour télécharger un fichier en utilisant un servlet Java.

La machine cliente dispose d'une interface utilisateur graphique qui fournit une liste de fichiers à télécharger.

Comment puis-je définir une barre de progression pour surveiller le téléchargement du fichier ?

Voici le code pour la machine cliente :

b2.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent arg0) {
        HttpClient client = new DefaultHttpClient();
        String value = comboBox1.getSelectedItem().toString();

        HttpGet post = new HttpGet(
            "http://localhost:8080/may16/FileDownloadServletNormal?value="
            + value + "&type=normal");
        try {
            LocalTime time1 = new LocalTime();

            // exécution de la requête POST
            HttpResponse rsp = client.execute(post);
            // lecture des données de réponse
            HttpEntity entity = rsp.getEntity();

            InputStream inputStream = entity.getContent();

            OutputStream outputStream = new FileOutputStream(
                new File("D://temp//downloaded//" + value));

            IOUtils.copy(inputStream, outputStream);

            /*try {
             Thread.sleep(25000);
             } 
             catch (InterruptedException e) {
             //TODO Généré automatiquement le bloc catch
             e.printStackTrace();
             }*/

            outputStream.flush();
            outputStream.close();
            LocalTime time2 = new LocalTime();
            Seconds sec = Seconds.secondsBetween(time1, time2);
            System.out.println("Temps écoulé :" + sec.getSeconds() + "secs");
            normalDownloadTime.setText("Temps de téléchargement normal :"
                + sec.getSeconds() + "secs");
            // String response = convertStreamToString(inputStream);
            //  System.out.println(response);

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
});

5voto

Andrew Thompson Points 108505

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X