Utilizando JProgressBar con Java Mail (conociendo el progreso después de transport.send ())

Tengo este programa que envía correos electrónicos. Me preguntaba si podría usarprogress bar para mejorar la interfaz de usuario. Lo que quiero es que la barra de progreso avance en consecuencia después de la declaracióntransport.send() se encuentra. Hay una manera de saber el progreso. Lo que sucede es que, cuando el usuario presionasend se inicia un nuevo hilo que envía el correo electrónico. La respuesta después de hacer clic en enviar es deficiente ya que el usuario no sabe si su acción está siendo escuchada o no. (¡aunque se está escuchando!) Después de un espacio de medio minuto, obtiene unJOptionPane eso sí, el mensaje ha sido enviado. Usted estará de acuerdo en que todos están ansiosos por saber que su acción se está procesando o no.

¿Hay alguna salida? Puedo usar la barra de progreso.( es decir, ¿cómo puedo saber el progreso de mi programa de correo electrónico) Si no puedo usarJProgressBar ¿Cuál es el otro método que puedo usar para decirle al usuario que su comando se está procesando y que no debe preocuparse?

Por cierto, esta es la parte responsable del envío de correos electrónicos.

try {
           message.setFrom( new InternetAddress(from));
           message.setRecipients(MimeMessage.RecipientType.TO , InternetAddress.parse(to) );
           message.setSubject(subject);
           message.setText(emailMessage);
           attachment.setDataHandler( new DataHandler( fds ) );
           attachment.setFileName( fileName );
           messagePart.setText( emailMessage );
           Multipart gmailMP = new MimeMultipart();
           gmailMP.addBodyPart(attachment);
           gmailMP.addBodyPart( messagePart );
           message.setContent( gmailMP );
           Transport transport = session.getTransport("smtp");
           transport.send(message); // LINE THAT SENDS EMAIL
           transport.close();   

           JOptionPane.showMessageDialog(new JFrame() , "Message sent!");
       }    catch(Exception exc) {
               JOptionPane.showMessageDialog( new JFrame() , exc );
            }

Después de la línea comentada, las siguientes 2 declaraciones tardan un tiempo en ejecutarse. Mientras tanto, quiero que el usuario sepa que su acción se está procesando

Cómo puedo hacer eso

Respuestas a la pregunta(2)

Su respuesta a la pregunta