Java 按钮上的JProgressBar单击以显示发送电子邮件时的进度

Java 按钮上的JProgressBar单击以显示发送电子邮件时的进度,java,swing,email,progress-bar,Java,Swing,Email,Progress Bar,我正在用swing程序发送间隔邮件。我想在点击发送电子邮件的按钮时显示进度条。发送所有电子邮件后,进度条达到100%完成。但是当邮件发送时,progrssbar不会显示任何内容 private void btnSendEmailsNowActionPerformed(java.awt.event.ActionEvent evt) { btnSendEmailsNow.setEn

我正在用swing程序发送间隔邮件。我想在点击发送电子邮件的按钮时显示进度条。发送所有电子邮件后,进度条达到100%完成。但是当邮件发送时,progrssbar不会显示任何内容

private void btnSendEmailsNowActionPerformed(java.awt.event.ActionEvent evt) {                                                        
    btnSendEmailsNow.setEnabled(false);
    Task task = new Task();
    task.start();
    //Load property files
    loadProps();
    //Read config file.
    readConfig();
    //Take filename "FromEmail_list" after reading config file. 
    BufferedReader br1=null;
    BufferedReader br2=null;
    String line1="",line2="";
    String csvSplitBy=",";
    String strMailFrom="",strPassword="";
    String strSendTo="";
    int countCSVFrom=0,countCSVSendTo;
    System.out.println("strCSVFrom=" + strCSVFrom + ", strcsvSendTo=" + strCSVSendTo);
    try{
      br1=new BufferedReader(new FileReader(strCSVFrom));
      br2=new BufferedReader(new FileReader(strCSVSendTo));
      while((line1=br1.readLine())!=null){
          countCSVFrom+=1;
          String[] strarrFromEmail = line1.split(csvSplitBy);
          strMailFrom=strarrFromEmail[0];
          strPassword=strarrFromEmail[1];  
          System.out.println("strFrom="+strMailFrom + ", strPassword="+strPassword);
          countCSVSendTo=0;
          while((line2=br2.readLine())!=null){
             System.out.println("line2="+line2.toString());
             countCSVSendTo+=1;
             String[] strMailTo=line2.split("\n");
             strSendTo=strMailTo[0];
              String subject = "Test mail"; 
              String message="";

              //inline image
              Map<String,String> inlineImage=new HashMap<String,String>();
              inlineImage.put("image1", "Logo.jpg");

              frmEmailer mailer = new frmEmailer();
              String filename=txtHTMLFile.getText(); 
              System.out.println("filename=" + filename);        
              try{
                 message=mailer.readHTML(filename,message);
                 mailer.sendHtmlEmail(strhost, strport, strMailFrom, strPassword, strSendTo,
                                     subject, message,inlineImage);
                 System.out.println("Email sent successfully.");

                 Random rand = new Random();
                 int randomNum = rand.nextInt((8 - 3) + 1) + 3;

                 System.out.println(randomNum);

                 Thread.sleep(randomNum*1000); //1000 microseconds = 1 seconds. 

                  if(countCSVSendTo==2){
                     break;       
                  }
              }catch (Exception ex) {
                  System.out.println("Failed to sent email.");
                  ex.printStackTrace();
              }
            }

      //System.out.println("countcsvfrom="+countCSVFrom + ", line1=" + line1.toString());

      System.out.println("countcsvsendto="+countCSVSendTo);
      }
      JOptionPane.showMessageDialog(null, "Emails sent successfully!");
      btnSendEmailsNow.setEnabled(true);
    }catch(FileNotFoundException fnfe){
          fnfe.printStackTrace();
          JOptionPane.showMessageDialog(null, "Failed to send Email!");
    }catch(IOException ioe ){
        JOptionPane.showMessageDialog(null, "Failed to send Email!");
        ioe.printStackTrace();
    }
}    
private class Task extends Thread {    
  public Task(){
  }

  public void run(){
     for(int i =0; i<= 100; i+=10){
        final int progress = i;
        SwingUtilities.invokeLater(new Runnable() {
           public void run() {
              progressbar.setValue(progress);
           }
        });
        try {
           Thread.sleep(100);
        } catch (InterruptedException e) {}
     }
  }
}    
private void btnSendEmailsNowActionPerformed(java.awt.event.ActionEvent evt){
btnSendEmailsNow.setEnabled(false);
任务=新任务();
task.start();
//加载属性文件
loadProps();
//读取配置文件。
readConfig();
//读取配置文件后获取文件名“FromEmail_list”。
BufferedReader br1=null;
BufferedReader br2=null;
字符串line1=“”,line2=“”;
字符串csvSplitBy=“,”;
字符串strMailFrom=“”,strPassword=“”;
字符串strSendTo=“”;
int countCSVFrom=0,countCSVSendTo;
System.out.println(“strCSVFrom=“+strCSVFrom+”,strcsvSendTo=“+strcsvSendTo”);
试一试{
br1=新的BufferedReader(新的文件读取器(strCSVFrom));
br2=新的BufferedReader(新的文件读取器(strCSVSendTo));
而((line1=br1.readLine())!=null){
countCSVFrom+=1;
字符串[]strarrFromEmail=line1.split(csvSplitBy);
strMailFrom=strarrFromEmail[0];
strPassword=strarrFromEmail[1];
System.out.println(“strFrom=“+strMailFrom+”,strPassword=“+strPassword”);
countCSVSendTo=0;
而((line2=br2.readLine())!=null){
System.out.println(“line2=“+line2.toString());
countCSVSendTo+=1;
字符串[]strMailTo=line2.split(“\n”);
strSendTo=strMailTo[0];
String subject=“测试邮件”;
字符串消息=”;
//内联图像
Map inlineImage=newhashmap();
inlineImage.put(“image1”、“Logo.jpg”);
frmEmailer mailer=新的frmEmailer();
字符串文件名=txtHTMLFile.getText();
System.out.println(“filename=“+filename”);
试一试{
message=mailer.readHTML(文件名,message);
发送邮件(strhost、strport、strMailFrom、strPassword、strSendTo、,
主题、信息、内联图像);
System.out.println(“电子邮件发送成功”);
Random rand=新的Random();
int randomNum=rand.nextInt((8-3)+1)+3;
System.out.println(randomNum);
Thread.sleep(randomNum*1000);//1000微秒=1秒。
如果(countCSVSendTo==2){
打破
}
}捕获(例外情况除外){
System.out.println(“发送电子邮件失败”);
例如printStackTrace();
}
}
//System.out.println(“countcsvfrom=“+countcsvfrom+”,line1=“+line1.toString());
System.out.println(“countcsvsendto=“+countcsvsendto”);
}
showMessageDialog(null,“电子邮件发送成功!”);
btnSendEmailsNow.setEnabled(true);
}捕获(FileNotFoundException fnfe){
fnfe.printStackTrace();
showMessageDialog(null,“发送电子邮件失败!”);
}捕获(ioe异常ioe){
showMessageDialog(null,“发送电子邮件失败!”);
ioe.printStackTrace();
}
}    
私有类任务扩展线程{
公共任务(){
}
公开募捐{
对于(int i=0;i请尝试以下代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)                                         
    {                                             
        new Thread(){
            public void run(){                                                   
                btnSendEmailsNow.setEnabled(false);
                //Load property files
                loadProps();
                //Read config file.
                readConfig();
                //Take filename "FromEmail_list" after reading config file. 
                BufferedReader br1=null;
                BufferedReader br2=null;
                String line1="",line2="";
                String csvSplitBy=",";
                String strMailFrom="",strPassword="";
                String strSendTo="";
                int countCSVFrom=0,countCSVSendTo;
                int EmailCount = 0;
                ProgressMonitor pm = new ProgressMonitor(null, "Loading Progress", "Getting Started...", 0, /*number of emails to be sent*/);
                System.out.println("strCSVFrom=" + strCSVFrom + ", strcsvSendTo=" + strCSVSendTo);
                try{
                  br1=new BufferedReader(new FileReader(strCSVFrom));
                  br2=new BufferedReader(new FileReader(strCSVSendTo));
                  while((line1=br1.readLine())!=null){
                      countCSVFrom+=1;
                      String[] strarrFromEmail = line1.split(csvSplitBy);
                      strMailFrom=strarrFromEmail[0];
                      strPassword=strarrFromEmail[1];  
                      System.out.println("strFrom="+strMailFrom + ", strPassword="+strPassword);
                      countCSVSendTo=0;
                      while((line2=br2.readLine())!=null){
                         System.out.println("line2="+line2.toString());
                         countCSVSendTo+=1;
                         String[] strMailTo=line2.split("\n");
                         strSendTo=strMailTo[0];
                          String subject = "Test mail"; 
                          String message="";

                          //inline image
                          Map<String,String> inlineImage=new HashMap<String,String>();
                          inlineImage.put("image1", "Logo.jpg");

                          frmEmailer mailer = new frmEmailer();
                          String filename=txtHTMLFile.getText(); 
                          System.out.println("filename=" + filename);        
                          try{
                             message=mailer.readHTML(filename,message);
                             mailer.sendHtmlEmail(strhost, strport, strMailFrom, strPassword, strSendTo,
                                                 subject, message,inlineImage);
                             System.out.println("Email sent successfully.");
                             EmailCount++;
                             pm.setProgress(EmailCount);
                             pm.setNote("Sent " + EmailCount + " Mails.");
                             Random rand = new Random();
                             int randomNum = rand.nextInt((8 - 3) + 1) + 3;

                             System.out.println(randomNum);

                             Thread.sleep(randomNum*1000); //1000 microseconds = 1 seconds. 

                              if(countCSVSendTo==2){
                                 break;       
                              }
                          }catch (Exception ex) {
                              System.out.println("Failed to sent email.");
                              ex.printStackTrace();
                          }
                        }

                  //System.out.println("countcsvfrom="+countCSVFrom + ", line1=" + line1.toString());

                  System.out.println("countcsvsendto="+countCSVSendTo);
                  }
                  JOptionPane.showMessageDialog(null, "Emails sent successfully!");
                  btnSendEmailsNow.setEnabled(true);
                }catch(FileNotFoundException fnfe){
                      fnfe.printStackTrace();
                      JOptionPane.showMessageDialog(null, "Failed to send Email!");
                }catch(IOException ioe ){
                    JOptionPane.showMessageDialog(null, "Failed to send Email!");
                    ioe.printStackTrace();
                }
            }
    }.start();

    }        
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{                                             
新线程(){
public void run(){
btnSendEmailsNow.setEnabled(false);
//加载属性文件
loadProps();
//读取配置文件。
readConfig();
//读取配置文件后获取文件名“FromEmail_list”。
BufferedReader br1=null;
BufferedReader br2=null;
字符串line1=“”,line2=“”;
字符串csvSplitBy=“,”;
字符串strMailFrom=“”,strPassword=“”;
字符串strSendTo=“”;
int countCSVFrom=0,countCSVSendTo;
int EmailCount=0;
ProgressMonitor pm=new ProgressMonitor(空,“加载进度”、“入门…”),0,/*要发送的电子邮件数*/);
System.out.println(“strCSVFrom=“+strCSVFrom+”,strcsvSendTo=“+strcsvSendTo”);
试一试{
br1=新的BufferedReader(新的文件读取器(strCSVFrom));
br2=新的BufferedReader(新的文件读取器(strCSVSendTo));
而((line1=br1.readLine())!=null){
countCSVFrom+=1;
字符串[]strarrFromEmail=line1.split(csvSplitBy);
strMailFrom=strarrFromEmail[0];
strPassword=strarrFromEmail[1];
System.out.println(“strFrom=“+strMailFrom+”,strPassword=“+strPassword”);
countCSVSendTo=0;
而((line2=br2.readLine())!=null){
System.out.println(“line2=“+line2.toString());
countCSVSendTo+=1;
字符串[]strMailTo=line2.split(“\n”);
strSendTo=strMailTo[0];
String subject=“测试邮件”;
字符串消息=”;
//内联图像
Map inlineImage=newhashmap();
inlineImage.put(“image1”、“Logo.jpg”);
frmEmailer mailer=新的frmEmailer();
字符串文件名=txtHTMLFile.getText();
System.out.println(“文件名=”