Java邮件群发系统

最近工作需要,做一个邮件群发系统,功能实现邮件群发,右键删除全选等功能,大致设计如下:

Java邮件群发系统

smtp设置窗口:

Java邮件群发系统

发送页面:

Java邮件群发系统

导入功能设计:

Java邮件群发系统

 final JButton importButton = new JButton("导入地址");
        importButton.addActionListener(new ActionListener(){
         //添加事件
            public void actionPerformed(ActionEvent e){
             //TODO 读取excel文件,写入list
             JFileChooser fc=new JFileChooser();  
             int i=fc.showOpenDialog(scrollPane);  
             if(i==JFileChooser.APPROVE_OPTION){   
              File file=fc.getSelectedFile();
              if(file.toString().endsWith("xls")){
               String URL=file.getPath();   
                  try{
                   List<List<String>> list = ExcelCommonUtil.readExcelCommon(file.toString(),true);
                   
                   if(list==null || list.size()==0){
                    JOptionPane.showMessageDialog(null,"电子表格内容为空!");
                    return;
                   }
                   int listLength = list.size();
                       String [][] tableVales= new String[listLength][list.get(0).size()]; //数据
                       for(int j = 0; j < listLength;j++){
                          if(list.get(j).size()>0){
                           String id = OperateProperties.genId();
                       //tableVales[j][1]=list.get(j).get(excelCloumnId);
                       tableVales[j][1]=id;
                       if(list.get(j).size()>1){
                         tableVales[j][2]=list.get(j).get(excelCloumnEmail);
                        }else{
                         tableVales[j][2]= "";
                        }
                          }
                          int rowCount = table.getRowCount() +1;   //行数加上1
                       Object[] temp = {String.valueOf(rowCount),tableVales[j][1],tableVales[j][2],true,INITSTATUS};
                       tableModel.addRow(temp);
                        }
                       table.updateUI();
                  }catch(Exception e1){
                   e1.printStackTrace();
                   JOptionPane.showMessageDialog(null,"读取电子表格文件异常!");
                  }
                  
                  
              }else{
               JOptionPane.showMessageDialog(null,"必须是excel2003电子表格文件!");
              }
              
             }
            }
        });
        panel.add(importButton);
       

 

编辑发送功能:

Java邮件群发系统
大致功能就这些。

  final JButton sendButton = new JButton("编辑发送");
        sendButton.addActionListener(new ActionListener(){
         //添加事件
            public void actionPerformed(ActionEvent e){
              username = OperateProperties.ReadProperties(filename, "username");
              password = OperateProperties.ReadProperties(filename, "password");
              smtp = OperateProperties.ReadProperties(filename, "smtp");
              String excelCloumn = OperateProperties.ReadProperties(filename, "excelCloumnEmail");
              excelCloumnEmail = Integer.parseInt(excelCloumn);
             if(table.getRowCount()==0){
              JOptionPane.showMessageDialog(null,"电子邮件地址为空!");
              return;
             }
               //TODO 获取复选框值 tempList 供调用
           for(int i = 0;i<table.getRowCount();i++){
            if((Boolean)tableModel.getValueAt(i,3)){
             int key = i;
             String value = (String)tableModel.getValueAt(i, 2);
             tempMap.put(key, value);
            }
           }
           if(tempMap.size()<=0){
            JOptionPane.showMessageDialog(null,"请选择要发送的邮件地址!");
            return;
           }
           new Message();
           title = Message.getEmailCap();
                 content = Message.getContent();
                 fujian = Message.getFujian();
                 color = new String[table.getRowCount()];
                 if(title!=null&& content!=null){
                  buttonActionPerformed(e);
                 }
                 Message.setEmailCap(null);
                 Message.setContent(null);
                 Message.setFujian(null);
             }
             
        });
        panel.add(sendButton);

 

关键代码:

1.右键功能:

声明邮件菜单:

private JPopupMenu popupMenu;

初始化邮件菜单内容:

 //右键
        popupMenu = new JPopupMenu();
     del = new JMenuItem("删除");
     slectAll = new JMenuItem("全选");
     popupMenu.add(del);
     popupMenu.add(slectAll);

添加事件:

//删除事件
     del.addActionListener(new ActionListener() {     
      public void actionPerformed(ActionEvent e) {    
        int selectedRow = table.getSelectedRow();//获得选中行的索引
                 if(selectedRow!=-1)  //存在选中行
                 {
                  String id = (String) tableModel.getValueAt(selectedRow, 0);
                  String genId = (String) tableModel.getValueAt(selectedRow, 1);
                  String email = (String) tableModel.getValueAt(selectedRow, 2);
                  boolean select = (Boolean) tableModel.getValueAt(selectedRow, 3);
                  String status = (String) tableModel.getValueAt(selectedRow, 4);
                  Object[] temp = {id,genId,email,select,status};
                     tableModel.removeRow(temp);  //删除行
                     //强制刷新界面
         table.updateUI();
                 }else{
                  JOptionPane.showMessageDialog(null,"请选择一行");
                 }
     }});
        

上一篇:[LintCode] Candy 分糖果问题


下一篇:IBM Rational AppScan 无法记录登录序列