Exibir ProgressBar ao enviar email

2 respostas
Janerson

Boa tarde Galera !!!

Estou desenvolvendo uma aplicação JavaFX para meu TCC, nesta aplicação tem um módulo de suporte
onde o usuário pode enviar um email para solicitar manutenção no sistema, criação de um novo modulo etc
mas eu quero que quando o usuario enviar um email apareça uma progressBar , ou loader qualquer indicando que o email esta sendo
enviado.

segue a classe do email

public void enviar() throws EmailException {
        Properties props = new Properties();
        /**
         * Parâmetros de conexão com servidor Gmail
         */

     //Aqui iniciaria a progressbar ou uma animação
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(getSender(), getPwd());
            }
        });

        /**
         * Ativa Debug para sessão
         */
        session.setDebug(false);

        try {

            Message message = new MimeMessage(session);

            Address[] toUser = InternetAddress.parse(destino);

            message.setRecipients(Message.RecipientType.TO, toUser);
            message.setSubject(assunto);//Assunto
//            message.setText(msg);
            message.setContent(msg.toString(),"text/html");
            
            Transport.send(message);

// e aqui fecharia progressBar ou a animação


            Dialogs.create().title("Email")
                    .message("Email enviado com sucesso para:\n" + getDestino())
                    .showInformation();

        } catch (MessagingException e) {
            JOptionPane.showMessageDialog(null, "Erro ao enviar Email:\nVerfique E-mail e senha ", JOptionPane.ERROR_MESSAGE);

        }
    }
    
        

            
        }

2 Respostas

D

cara é o seguinte, você precisa criar um thread para enviar segue um pequeno exemplo.
o progress que usei é um para android, mas pegue a essência e adapte para você.

pgProcesso = new ProgressDialog(TelaCadastroUsuario.this);
											pgProcesso.setIcon(R.drawable.botao_info);
											pgProcesso.setTitle(getString(R.string.cod30));
											pgProcesso.setMessage(getString(R.string.cod31));
											pgProcesso.show();
											
									        new Thread() {
									            public void run() {
									                try{
									                	MandarEmail me = new MandarEmail(repEmail, repSenha, TelaCadastroUsuario.this);
														me.enviarEmail();
									                } catch (Exception e) {
									                	//manda a exceção
									                }
									                //encerra progress dialog
									                pgProcesso.dismiss();
									            }
									        }.start();
Janerson
dennypg:
cara é o seguinte, você precisa criar um thread para enviar segue um pequeno exemplo. o progress que usei é um para android, mas pegue a essência e adapte para você.
pgProcesso = new ProgressDialog(TelaCadastroUsuario.this);
											pgProcesso.setIcon(R.drawable.botao_info);
											pgProcesso.setTitle(getString(R.string.cod30));
											pgProcesso.setMessage(getString(R.string.cod31));
											pgProcesso.show();
											
									        new Thread() {
									            public void run() {
									                try{
									                	MandarEmail me = new MandarEmail(repEmail, repSenha, TelaCadastroUsuario.this);
														me.enviarEmail();
									                } catch (Exception e) {
									                	//manda a exceção
									                }
									                //encerra progress dialog
									                pgProcesso.dismiss();
									            }
									        }.start();

Amigo vlw

Mas ainda nao consegui implementar isso em javafx :(

Criado 23 de janeiro de 2014
Ultima resposta 15 de fev. de 2014
Respostas 2
Participantes 2