У меня есть эта программа, которая отправляет электронную почту. Мне было интересно, могу ли я использовать 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 );
}
После закомментированной строки требуется некоторое время для выполнения следующих двух операторов. Между ними я хочу, чтобы пользователь знал, что его действие обрабатывается
Как я могу это сделать ?