У меня есть эта программа, которая отправляет электронную почту. Мне было интересно, могу ли я использовать progress bar
, чтобы улучшить пользовательский интерфейс.Что я хочу, так это чтобы индикатор выполнения прогрессировал соответствующим образом после того, как встретился оператор transport.send()
. Есть ли способ узнать прогресс.Что происходит, когда пользователь нажимает send
, запускается новый поток, который отправляет электронное письмо. Ответ после нажатия кнопки отправки плохой, так как пользователь не знает, прослушивается его действие или нет. (хотя онпрослушивается!) Через полминуты он получает JOptionPane
, что да, сообщение отправлено. Вы согласитесь, что все хотят знать, что его действие обрабатывается или нет.
Есть ли какой-то выход, я могу использовать индикатор выполнения. ( т.е. как я могу узнать, как работает моя программа электронной почты ) Если я не могу использовать JProgressBar
, чтоэто другой метод, который я могу использовать, чтобы сообщить пользователю, что его команда обрабатывается, и ему не нужно беспокоиться.
Кстати, именно эта часть отвечает за отправку писем.
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 );
}
После закомментированной строки для выполнения следующих 2 операторов требуется некоторое время. Между тем я хочу, чтобы пользователь знал, что его действие обрабатывается
Как я могу это сделать?